1900 |
InsertControlItem / UserEditor / A2X:
with G2antt1 do begin BeginUpdate(); BackColor := RGB(240,240,240); Chart.PaneWidth[True] := 0; ConditionalFormats.Add('1 = 1',Null).Bold := True; (IUnknown(Columns.Add('Type')) as EXG2ANTTLib_TLB.Column).Alignment := EXG2ANTTLib_TLB.RightAlignment; with Items do begin h := AddItem('1. A ProgID such as "MSCAL.Calendar.7"'); ItemDivider[h] := 0; hX := InsertControlItem(0,'MSCAL.Calendar',''); (IUnknown(ItemObject[hX]) as MSACAL_TLB.Calendar).BackColor := $ffffff; h := AddItem('2. A CLSID such as "{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}"'); ItemDivider[h] := 0; hX := InsertControlItem(0,'{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}',''); h := AddItem('3. A URL such as "http://www.exontrol.com"'); ItemDivider[h] := 0; hX := InsertControlItem(0,'http://www.exontrol.com',''); h := AddItem('4. A reference to an Active document such as "file://\\Documents\MyDoc.doc"'); ItemDivider[h] := 0; hX := InsertControlItem(0,'file://C:\empesting.xml',''); h := AddItem('5.A fragment of HTML such as "MSHTML:<HTML><BODY>This is a line of text</BODY></HTML>"'); ItemDivider[h] := 0; hX := InsertControlItem(0,'MSHTML:<HTML><BODY>This is a <b>line of</b> text</BODY></HTML>',''); ItemHeight[hX] := 56; h := AddItem('6.Anything, if it is preffixed by "A2X:"'); ItemDivider[h] := 0; hX := InsertControlItem(0,'A2X:TOC24.Toc24Ctrl.1',''); end; EndUpdate(); end |
1899 |
How do I add a RichTextBox editor
// UserEditorOleEvent event - Occurs when an user editor fires an event. procedure TForm1.G2antt1UserEditorOleEvent(ASender: TObject; Object : IDispatch;Ev : IOleEvent;var CloseEditor : WordBool;Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin OutputDebugString( Ev ); end end; with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exAllLines; DefaultItemHeight := 32; with (IUnknown(Columns.Add('RICHTEXT')) as EXG2ANTTLib_TLB.Column).Editor do begin EditType := EXG2ANTTLib_TLB.UserEditorType; UserEditor('RICHTEXT.RichtextCtrl',''); with (IUnknown(UserEditorObject) as RichTextLib_TLB.RichTextBox) do begin AutoVerbMenu := True; TextRTF := '{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard\r\nThis is some {\b bold} text.\par\r\n}'; end; end; with Items do begin AddItem('RICHTEXT.RichtextCtrl'); end; EndUpdate(); end |
1898 |
Is it possible to trap a double-click event on a specific cell and when that happens, to set the cell to a specific value
// DblClick event - Occurs when the user dblclk the left mouse button over an object. procedure TForm1.G2antt1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin h := ItemFromPoint[-1,-1,c,hit]; OutputDebugString( Items.CellValue[OleVariant(h),OleVariant(c)] ); end end; with G2antt1 do begin BeginUpdate(); HeaderAppearance := EXG2ANTTLib_TLB.Etched; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; Columns.Add('C1'); Columns.Add('C2'); with Items do begin CellValue[OleVariant(AddItem('Item 1')),OleVariant(1)] := 'Item 2'; CellValue[OleVariant(AddItem('Item 3')),OleVariant(1)] := 'Item 4'; CellValue[OleVariant(AddItem('Item 5')),OleVariant(1)] := 'Item 6'; end; EndUpdate(); end |
1897 |
How can I display dates in DD/MM/YYYY format
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := False; Columns.Add('Date'); with Items do begin ItemDivider[AddItem('Different Date Formats')] := 0; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := '((shortdateF(value) mid 4) left 2) + `/` + (shortdateF (value) left 2) + `/` + (shortdateF (value) right 4)'; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := '(1 array (0:=(shortdateF(value) split `/`))) + `/` + (0 array (=:0) ) + `/` + (2 array (=:0) )'; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := '((`0` + day(value) ) right 2) + `/` + ((`0` + month(value) ) right 2) + `/` + year(value)'; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := 'day(value) + `/` + month(value) + `/` + year(value)'; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := 'year(value) + ` - ` + day(value) + ` - ` + month(value)'; h := AddItem('12/1/1971'); ItemHeight[h] := 24; CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML; FormatCell[OleVariant(h),OleVariant(0)] := '`<b>` + year(value) + `</b><off -4> ` + day(value) + ` - ` + month(value)'; ItemDivider[AddItem('Predefined Date Formats')] := 0; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := 'value'; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := 'shortdateF(value)'; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := 'shortdate(value)'; FormatCell[OleVariant(AddItem('12/1/1971')),OleVariant(0)] := 'longdate(value)'; end; EndUpdate(); end |
1896 |
I have noticed that the column gets resized once I release the mouse. I have a column that displays multiple-lines cells, and the text gets wrapped only when user releases the mouse. Is it possible to get resized contiguously as I had before
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := False; DrawGridLines := EXG2ANTTLib_TLB.exVLines; ColumnsAllowSizing := True; (IUnknown(Columns.Add('Column A (cont)')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exColumnResizeContiguously] := OleVariant(True); Columns.Add('Column 1'); (IUnknown(Columns.Add('Column B (cont)')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exColumnResizeContiguously] := OleVariant(True); Columns.Add('Column 2'); EndUpdate(); end |
1895 |
How do I get the column from cursor, when it hovers the empty portion of the items section
|
1894 |
How do I add items once the user clicks the empty area
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control. procedure TForm1.G2antt1Click(ASender: TObject; ); begin with G2antt1 do begin i := ItemFromPoint[0,-1,c,hit]; with Items do begin CellValue[OleVariant(AddItem(OleVariant(i))),OleVariant(1)] := OleVariant(c); end; end end; with G2antt1 do begin BeginUpdate(); Columns.Add('Number of Items to Add'); Columns.Add('Click on Column'); EndUpdate(); end |
1893 |
Is there an easy way to get an effect like in a Microsoft Access / SQL-Server Table view, where you can scroll-up till the last row containing data is displayed as top-row
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null); end; end end; with G2antt1 do begin BeginUpdate(); HasLines := EXG2ANTTLib_TLB.exNoLine; ColumnAutoResize := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',1,1,Null); end; with Chart do begin FirstVisibleDate := '10/21/1994'; LevelCount := 2; end; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exBoth); ScrollPos[True] := Items.ItemCount; EndUpdate(); end |
1892 |
Is there any option to stop events
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin OutputDebugString( 'AddItem event is fired only if FreezeEvents(False) is called' ); end end; // AddLink event - Occurs when the user links two bars using the mouse. procedure TForm1.G2antt1AddLink(ASender: TObject; LinkKey : WideString); begin with G2antt1 do begin OutputDebugString( 'AddLink event is fired only if FreezeEvents(False) is called' ); end end; // BarResize event - Occurs when a bar is moved or resized. procedure TForm1.G2antt1BarResize(ASender: TObject; Item : HITEM;Key : OleVariant); begin with G2antt1 do begin OutputDebugString( 'BarResize event is fired only if FreezeEvents(False) is called' ); end end; with G2antt1 do begin FreezeEvents(True); BeginUpdate(); DefaultItemHeight := 24; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; end; with Items do begin h1 := AddItem('Task 1'); AddBar(h1,'Task','1/2/2001','1/4/2001','',Null); h2 := AddItem('Task 2'); AddBar(h2,'Task','1/2/2001','1/4/2001','',Null); AddLink('L1',h1,'',h2,''); SchedulePDM(0,''); end; EndUpdate(); FreezeEvents(False); end |
1891 |
How do I specify a more intensive color if using RenderType property
with G2antt1 do begin BeginUpdate(); with VisualAppearance do begin RenderType := -16777216; Add(1,'gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwHI' + 'ERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6S' + 'TCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKpF' + 'HIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQhaX' + 'QIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC'); Add(2,'gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQGh' + '+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKfa' + 'ZACj4arKejrRDCMAggI='); end; Columns.Add('Task'); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $1000000; end; with Bars.Item['Summary'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $2000000; end; end; with Items do begin hSummaryJ := AddItem('Summary A'); AddBar(hSummaryJ,'Summary','1/2/2001','1/2/2001','J',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.1'); AddBar(hTaskJ,'Task','1/2/2001','1/5/2001','J1',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.2'); AddBar(hTaskJ,'Task','1/4/2001','1/8/2001','J2',Null); DefineSummaryBars(hSummaryJ,'J',-1,'<*>'); hSummaryK := AddItem('Summary B'); AddBar(hSummaryK,'Summary','1/2/2001','1/2/2001','K',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.1'); AddBar(hTaskK,'Task','1/2/2001','1/5/2001','K1',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.2'); AddBar(hTaskK,'Task','1/4/2001','1/8/2001','K2',Null); DefineSummaryBars(hSummaryK,'K',-1,'<*>'); ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255); ExpandItem[0] := True; end; EndUpdate(); end |
1890 |
How can I include the child items, when a filter is applied
with G2antt1 do begin BeginUpdate(); ColumnAutoResize := True; ContinueColumnScroll := False; MarkSearchColumn := False; SearchColumnIndex := 1; Indent := 16; LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; FilterBarPromptVisible := True; FilterBarPromptPattern := 'Nancy'; FilterInclude := EXG2ANTTLib_TLB.exItemsWithChilds; Chart.LevelCount := 2; with Columns do begin (IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96; (IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96; Add('City'); end; with Items do begin h0 := AddItem('Nancy Davolio'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle'; h0 := InsertItem(h0,Null,'Andrew Fuller'); CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales'; CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma'; h0 := InsertItem(h0,Null,'Michael Suyama'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Janet Leverling'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland'; h0 := InsertItem(h0,Null,'Margaret Peacock'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond'; ExpandItem[0] := True; end; ApplyFilter(); EndUpdate(); end |
1889 |
Is it possible to change the date format shown when you scroll the horizontal bar on the chart
|
1888 |
How do I change the drop down filter icon/button (white)
with G2antt1 do begin BeginUpdate(); with VisualAppearance do begin Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' + '0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' + 'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' + 'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' + 'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' + 'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI='); Add(1,'CP:2 -4 -4 2 4'); end; Background[EXG2ANTTLib_TLB.exHeaderFilterBarButton] := $1000000; Background[EXG2ANTTLib_TLB.exCursorHoverColumn] := BackColor; HeaderAppearance := EXG2ANTTLib_TLB.None2; BackColorHeader := RGB(255,255,255); HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; HeaderHeight := 24; with (IUnknown(Columns.Add('Filter')) as EXG2ANTTLib_TLB.Column) do begin DisplayFilterButton := True; AllowSort := False; AllowDragging := False; end; with Chart do begin PaneWidth[False] := 196; LevelCount := 2; end; EndUpdate(); end |
1887 |
How do I prevent changing the cell's state ( check-box state )
// CellStateChanging event - Fired before cell's state is about to be changed. procedure TForm1.G2antt1CellStateChanging(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewState : Integer); begin with G2antt1 do begin with Items do begin NewState := CellState[OleVariant(Item),OleVariant(ColIndex)]; end; end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('P1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with (IUnknown(Columns.Add('P2')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child 1'); InsertItem(h,Null,'Child 2'); ExpandItem[h] := True; end; EndUpdate(); end |
1886 |
How do I change the color of the columns's header to cover all levels
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exAllLines; BackColorLevelHeader := BackColorHeader; HeaderAppearance := EXG2ANTTLib_TLB.Etched; DefaultItemHeight := 36; TreeColumnIndex := -1; with Columns do begin with (IUnknown(Add('C1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Width := 24; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(3); end; with (IUnknown(Add('C2')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(2); end; Add('Column1'); end; with Chart do begin BackColorLevelHeader := G2antt1.BackColorHeader; LevelCount := 2; DrawGridLines := EXG2ANTTLib_TLB.exAllLines; FirstVisibleDate := '6/22/2014'; PaneWidth[False] := 256; end; with Items do begin h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 1.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 1.3'; AddBar(h,'Task','6/23/2014','6/25/2014',Null,Null); h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 2.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 2.3'; AddBar(h,'Task','6/26/2014','6/28/2014',Null,Null); end; EndUpdate(); end |
1885 |
Is it possible to extend the columns's header to fill all levels
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exAllLines; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; HeaderAppearance := EXG2ANTTLib_TLB.Etched; DefaultItemHeight := 36; TreeColumnIndex := -1; with Columns do begin with (IUnknown(Add('C1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Width := 24; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(3); end; with (IUnknown(Add('C2')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(2); end; Add('Column1'); end; with Chart do begin BackColorLevelHeader := G2antt1.BackColorHeader; LevelCount := 2; DrawGridLines := EXG2ANTTLib_TLB.exAllLines; FirstVisibleDate := '6/22/2014'; PaneWidth[False] := 256; end; with Items do begin h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 1.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 1.3'; AddBar(h,'Task','6/23/2014','6/25/2014',Null,Null); h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 2.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 2.3'; AddBar(h,'Task','6/26/2014','6/28/2014',Null,Null); end; EndUpdate(); end |
1884 |
How do I change the color of the columns's header to cover all levels (sample CRD)
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exAllLines; BackColorLevelHeader := BackColorHeader; HeaderAppearance := EXG2ANTTLib_TLB.Etched; DefaultItemHeight := 36; TreeColumnIndex := -1; with Columns do begin with (IUnknown(Add('C1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Width := 24; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(3); end; with (IUnknown(Add('C2')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(2); end; (IUnknown(Add('Column1')) as EXG2ANTTLib_TLB.Column).Visible := False; (IUnknown(Add('Column2')) as EXG2ANTTLib_TLB.Column).Visible := False; (IUnknown(Add('Column3')) as EXG2ANTTLib_TLB.Column).Visible := False; with (IUnknown(Add('FormatLevel')) as EXG2ANTTLib_TLB.Column) do begin FormatLevel := '18;"Info"[a=17]/(2/3,4)'; Def[EXG2ANTTLib_TLB.exCellFormatLevel] := '2/3,4'; end; end; with Chart do begin DrawGridLines := EXG2ANTTLib_TLB.exAllLines; FirstVisibleDate := '6/22/2014'; PaneWidth[False] := 256; BackColorLevelHeader := G2antt1.BackColorHeader; end; with Items do begin h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 1.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 1.3'; AddBar(h,'Task','6/23/2014','6/25/2014',Null,Null); h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 2.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 2.3'; AddBar(h,'Task','6/26/2014','6/28/2014',Null,Null); end; EndUpdate(); end |
1883 |
Is it possible to extend the columns's header to fill all levels (sample CRD)
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exAllLines; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; HeaderAppearance := EXG2ANTTLib_TLB.Etched; DefaultItemHeight := 36; TreeColumnIndex := -1; with Columns do begin with (IUnknown(Add('C1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Width := 24; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(3); end; with (IUnknown(Add('C2')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(2); end; (IUnknown(Add('Column1')) as EXG2ANTTLib_TLB.Column).Visible := False; (IUnknown(Add('Column2')) as EXG2ANTTLib_TLB.Column).Visible := False; (IUnknown(Add('Column3')) as EXG2ANTTLib_TLB.Column).Visible := False; with (IUnknown(Add('FormatLevel')) as EXG2ANTTLib_TLB.Column) do begin FormatLevel := '18;"Info"[a=17]/(2/3,4)'; Def[EXG2ANTTLib_TLB.exCellFormatLevel] := '2/3,4'; end; end; with Chart do begin DrawGridLines := EXG2ANTTLib_TLB.exAllLines; FirstVisibleDate := '6/22/2014'; PaneWidth[False] := 256; BackColorLevelHeader := G2antt1.BackColorHeader; end; with Items do begin h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 1.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 1.3'; AddBar(h,'Task','6/23/2014','6/25/2014',Null,Null); h := AddItem(''); CellValue[OleVariant(h),OleVariant(1)] := 'Cell 2.2'; CellValue[OleVariant(h),OleVariant(2)] := 'Cell 2.3'; AddBar(h,'Task','6/26/2014','6/28/2014',Null,Null); end; EndUpdate(); end |
1882 |
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; with (IUnknown(Columns.Add('Date')) as EXG2ANTTLib_TLB.Column) do begin SortType := EXG2ANTTLib_TLB.SortDate; DisplayFilterButton := True; DisplayFilterPattern := False; DisplayFilterDate := True; FilterList := Integer(EXG2ANTTLib_TLB.exShowFocusItem) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox) Or Integer(EXG2ANTTLib_TLB.exSortItemsDesc); end; with (IUnknown(Columns.Add('DateTime')) as EXG2ANTTLib_TLB.Column) do begin SortType := EXG2ANTTLib_TLB.SortDateTime; DisplayFilterButton := True; DisplayFilterPattern := False; FilterList := Integer(EXG2ANTTLib_TLB.exShowFocusItem) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox) Or Integer(EXG2ANTTLib_TLB.exSortItemsDesc); end; with (IUnknown(Columns.Add('Time')) as EXG2ANTTLib_TLB.Column) do begin SortType := EXG2ANTTLib_TLB.SortTime; DisplayFilterButton := True; DisplayFilterPattern := False; FilterList := Integer(EXG2ANTTLib_TLB.exShowFocusItem) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox) Or Integer(EXG2ANTTLib_TLB.exSortItemsDesc); FormatColumn := 'time(value)'; end; with (IUnknown(Columns.Add('Numeric')) as EXG2ANTTLib_TLB.Column) do begin SortType := EXG2ANTTLib_TLB.SortNumeric; DisplayFilterButton := True; FilterList := Integer(EXG2ANTTLib_TLB.exShowFocusItem) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox) Or Integer(EXG2ANTTLib_TLB.exSortItemsDesc); end; with (IUnknown(Columns.Add('String')) as EXG2ANTTLib_TLB.Column) do begin DisplayFilterButton := True; FilterList := Integer(EXG2ANTTLib_TLB.exShowFocusItem) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox) Or Integer(EXG2ANTTLib_TLB.exSortItemsDesc); end; with Items do begin h := AddItem('1/27/2010'); CellValue[OleVariant(h),OleVariant(1)] := '1/27/2010 10:00:00 AM'; CellValue[OleVariant(h),OleVariant(2)] := CellValue[OleVariant(h),OleVariant(1)]; CellValue[OleVariant(h),OleVariant(3)] := OleVariant(1); CellValue[OleVariant(h),OleVariant(4)] := CellValue[OleVariant(h),OleVariant(3)]; h := AddItem('1/27/2011'); CellValue[OleVariant(h),OleVariant(1)] := '1/27/2011 9:00:00 AM'; CellValue[OleVariant(h),OleVariant(2)] := CellValue[OleVariant(h),OleVariant(1)]; CellValue[OleVariant(h),OleVariant(3)] := OleVariant(11); CellValue[OleVariant(h),OleVariant(4)] := CellValue[OleVariant(h),OleVariant(3)]; h := AddItem('11/2/2010'); CellValue[OleVariant(h),OleVariant(1)] := '11/2/2010 9:00:00 AM'; CellValue[OleVariant(h),OleVariant(2)] := CellValue[OleVariant(h),OleVariant(1)]; CellValue[OleVariant(h),OleVariant(3)] := OleVariant(2); CellValue[OleVariant(h),OleVariant(4)] := CellValue[OleVariant(h),OleVariant(3)]; end; Columns.Item['DateTime'].DisplayFilterDate := False; EndUpdate(); end |
1881 |
Is there a way to set the time zone per item
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; end; with Items do begin h1 := AddItem('Task A'); AddBar(h1,'','1/2/2001','1/18/2001','TZ1','Time Zone / Item'); ItemBar[h1,'TZ1',EXG2ANTTLib_TLB.exBarSelectable] := OleVariant(False); ItemBar[h1,'TZ1',EXG2ANTTLib_TLB.exBarBackColor] := OleVariant(255); AddBar(h1,'Task','1/20/2001','1/29/2001','Z1',Null); h1 := AddItem('Task B'); AddBar(h1,'','1/6/2001','1/24/2001','TZ2','Time Zone / Item'); ItemBar[h1,'TZ2',EXG2ANTTLib_TLB.exBarSelectable] := OleVariant(False); ItemBar[h1,'TZ2',EXG2ANTTLib_TLB.exBarBackColor] := OleVariant(65535); AddBar(h1,'Task','1/3/2001','1/12/2001','Z1',Null); end; EndUpdate(); end |
1880 |
Is there a way to turn arrow-key-navigation between the items on and off
// KeyDown event - Occurs when the user presses a key while an object has the focus. procedure TForm1.G2antt1KeyDown(ASender: TObject; var KeyCode : Smallint;Shift : Smallint); begin with G2antt1 do begin KeyCode := 0; end end; with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with (IUnknown(Columns.Add('Effort')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(21); Editor.EditType := EXG2ANTTLib_TLB.SpinType; end; with Chart do begin LevelCount := 2; NonworkingDays := 0; PaneWidth[False] := 96; FirstVisibleDate := '6/20/2005'; HistogramVisible := True; HistogramHeight := 128; HistogramView := EXG2ANTTLib_TLB.exHistogramAllItems; with Bars.Item['Task'] do begin HistogramPattern := Pattern; HistogramType := EXG2ANTTLib_TLB.exHistOverload; HistogramCriticalValue := 3; ShowHistogramValues := 'value>3?255:1'; HistogramItems := -11; HistogramGridLinesColor := $c0c0c0; HistogramRulerLinesColor := $10000; FormatHistogramValues := 'value format `2`'; end; end; with Items do begin AllowCellValueToItemBar := True; h1 := AddItem('Task 1'); AddBar(h1,'Task','6/21/2005','6/23/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(6.79); h1 := AddItem('Task 2'); AddBar(h1,'Task','6/24/2005','6/26/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(3.19); h1 := AddItem('Task 3'); AddBar(h1,'Task','6/27/2005','6/29/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(2); h1 := AddItem('Task 4'); AddBar(h1,'Task','6/30/2005','7/2/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(1); end; EndUpdate(); end |
1879 |
I am using Layout property to sort multiple columns at once. The problem is that all items get expanded. How do I prevent that
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('P1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with (IUnknown(Columns.Add('P2')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; FormatColumn := '1 index ``'; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child A'); InsertItem(h,Null,'Child B'); InsertItem(h,Null,'Child A'); InsertItem(h,Null,'Child B'); AddItem('Root'); AddItem('Root'); end; SingleSort := False; Layout := 'multiplesort="C0:1 C1:2";collapse=""'; EndUpdate(); end |
1878 |
How can I decode the Layout property
with G2antt1 do begin BeginUpdate(); with Columns do begin Add('C1'); (IUnknown(Add('C2')) as EXG2ANTTLib_TLB.Column).Position := 1; end; with Items do begin CellValue[OleVariant(AddItem('SubItem 1.1')),OleVariant(1)] := 'SubItem 1.2'; CellValue[OleVariant(AddItem('SubItem 2.1')),OleVariant(1)] := 'SubItem 2.2'; end; Columns.Item['C2'].SortOrder := EXG2ANTTLib_TLB.SortDescending; EndUpdate(); OutputDebugString( 'Encoded:' ); OutputDebugString( Layout ); with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do begin OutputDebugString( 'Decoded: ' ); OutputDebugString( Decode64TextW[G2antt1.Layout] ); end; end |
1877 |
Is it possible to define a bar inside a bar (method 2)
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := True; Columns.Add('Task'); DrawGridLines := EXG2ANTTLib_TLB.exHLines; BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; DrawGridLines := EXG2ANTTLib_TLB.exHLines; AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto; AllowLinkBars := False; ResizeUnitScale := EXG2ANTTLib_TLB.exHour; PaneWidth[False] := 48; FirstVisibleDate := '1/1/2001'; Bars.Item['Task'].OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack); end; with Items do begin h := AddItem('Tasks'); AddBar(h,'Task','1/3/2001','1/7/2001','A1',Null); AddBar(h,'Task','1/4/2001','1/8/2001','A2',Null); AddBar(h,'Task','1/9/2001','1/13/2001','A3',Null); end; with Chart.Notes do begin with Add('N1',OleVariant(G2antt1.Items.FirstVisibleItem),'A1','') do begin PartText[EXG2ANTTLib_TLB.exNoteStart] := ' '; PartFixedWidth[EXG2ANTTLib_TLB.exNoteStart] := 18; PartFixedHeight[EXG2ANTTLib_TLB.exNoteStart] := 11; PartCanMove[EXG2ANTTLib_TLB.exNoteStart] := True; PartBackColor[EXG2ANTTLib_TLB.exNoteStart] := $ff00; PartVisible[EXG2ANTTLib_TLB.exNoteEnd] := False; ShowLink := EXG2ANTTLib_TLB.exNoteLinkHidden; PartVOffset[EXG2ANTTLib_TLB.exNoteStart] := 4; end; end; EndUpdate(); end |
1876 |
Is it possible to define a bar inside a bar (method 1)
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := True; Columns.Add('Task'); DrawGridLines := EXG2ANTTLib_TLB.exHLines; BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; DrawGridLines := EXG2ANTTLib_TLB.exHLines; AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto; AllowLinkBars := False; ResizeUnitScale := EXG2ANTTLib_TLB.exHour; PaneWidth[False] := 48; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack); OverlaidGroup := 'Task,TaskB'; end; with Bars.Add('Aka') do begin Color := $ff00; Pattern := EXG2ANTTLib_TLB.exPatternSolid; end; with Bars.Add('Task%Aka') do begin Shortcut := 'TaskB'; OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack); OverlaidGroup := 'Task,TaskB'; end; end; with Items do begin h := AddItem('Tasks'); AddBar(h,'TaskB','1/3/2001','1/7/2001','A1',Null); ItemBar[h,'A1',EXG2ANTTLib_TLB.exBarPercent] := OleVariant(0.25); AddBar(h,'Task','1/4/2001','1/8/2001','A2',Null); AddBar(h,'Task','1/9/2001','1/13/2001','A3',Null); end; EndUpdate(); end |
1875 |
How do I show the bar with a solid color, no border (method 1)
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := True; Columns.Add('Task'); DrawGridLines := EXG2ANTTLib_TLB.exHLines; BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; DrawGridLines := EXG2ANTTLib_TLB.exHLines; AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto; AllowLinkBars := False; ResizeUnitScale := EXG2ANTTLib_TLB.exHour; PaneWidth[False] := 48; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin Color := $ff; Pattern := EXG2ANTTLib_TLB.exPatternSolid; end; end; with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2001','1/5/2001','',Null); end; EndUpdate(); end |
1874 |
How do I show the bar with a solid color, no border (method 2)
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := True; Columns.Add('Task'); DrawGridLines := EXG2ANTTLib_TLB.exHLines; BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; DrawGridLines := EXG2ANTTLib_TLB.exHLines; AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto; AllowLinkBars := False; ResizeUnitScale := EXG2ANTTLib_TLB.exHour; PaneWidth[False] := 48; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin Color := $ff; StartColor := Color; EndColor := Color; Pattern := EXG2ANTTLib_TLB.exPatternBox; end; end; with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2001','1/5/2001','',Null); end; EndUpdate(); end |
1873 |
How do I show the bar with a solid color, no border (method 3)
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := True; Columns.Add('Task'); DrawGridLines := EXG2ANTTLib_TLB.exHLines; BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; DrawGridLines := EXG2ANTTLib_TLB.exHLines; AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto; AllowLinkBars := False; ResizeUnitScale := EXG2ANTTLib_TLB.exHour; PaneWidth[False] := 48; FirstVisibleDate := '1/1/2001'; end; with VisualAppearance do begin RenderType := -1; Add(1,'gBFLBCJwBAEHhEJAAEhABJkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyDQKkEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5AcgPfKgAAFESNY5gSL5Yj' + '2IjrRDCMAggI'); end; with Chart.Bars.Item['Task'] do begin Color := $10000ff; end; with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2001','1/5/2001','',Null); end; EndUpdate(); end |
1872 |
How do I find the cell's type, or what the cell holds
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exRowLines; Chart.PaneWidth[True] := 0; with Columns do begin (IUnknown(Add('Value')) as EXG2ANTTLib_TLB.Column).Width := 24; (IUnknown(Add('Type')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'type(%0)'; (IUnknown(Add('TypeAsString')) as EXG2ANTTLib_TLB.Column).FormatColumn := '(0 := type(%0)) array (`empty`, `null`, `short`, `long`, `float`, `double`, `currency`, `date`, `string`, `object`, `error`, `bo' + 'olean`, `variant`, `any`, `reserved`, `decimal`, `char`, `byte`, `unsigned short`, `unsigned long`, `long on 64 bits`)'; (IUnknown(Add('Length')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'len(%0)'; end; with Items do begin AddItem(Null); AddItem(''); CellValue[OleVariant(.AddItem(Null)),OleVariant(0)] := (IUnknown(G2antt1.DefaultInterface) as EXG2ANTTLib_TLB.G2antt); CellValue[OleVariant(AddItem(Null)),OleVariant(0)] := OleVariant(True); CellValue[OleVariant(AddItem(Null)),OleVariant(0)] := OleVariant(-1); CellValue[OleVariant(AddItem(Null)),OleVariant(0)] := OleVariant(-1); CellValue[OleVariant(AddItem(Null)),OleVariant(0)] := '1/1/2001'; end; EndUpdate(); end |
1871 |
Is it possible to allow changing the bar's parent while bar's start/end margins should stay unchanged
// BarParentChange event - Occurs just before moving a bar from current item to another item. procedure TForm1.G2antt1BarParentChange(ASender: TObject; Item : HITEM;Key : OleVariant;NewItem : HITEM;var Cancel : WordBool); begin with G2antt1 do begin Items.SelectItem[NewItem] := True; OutputDebugString( 'BarParentChange from ' ); OutputDebugString( Items.CellCaption[OleVariant(Item),OleVariant(0)] ); OutputDebugString( ' to ' ); OutputDebugString( Items.CellCaption[OleVariant(NewItem),OleVariant(0)] ); end end; with G2antt1 do begin BeginUpdate(); (IUnknown(Columns.Add('Members')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); SelBackMode := EXG2ANTTLib_TLB.exTransparent; with Chart do begin SelBackColor := G2antt1.SelBackColor; FirstVisibleDate := '9/20/2006'; AllowLinkBars := False; AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar; LevelCount := 2; PaneWidth[False] := 96; with Bars.Item['Task'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Def[EXG2ANTTLib_TLB.exBarCanResize] := OleVariant(False); end; end; with Items do begin AddItem('Member <b>1</b>'); h := AddItem('Member <b>2</b>'); AddBar(h,'Task','9/21/2006','9/23/2006','T102','Task <b>102</b>'); ItemBar[h,'T102',EXG2ANTTLib_TLB.exBarCanMove] := OleVariant(False); ItemBar[h,'T102',EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True); AddItem('Member <b>3</b>'); AddItem('Member <b>4</b>'); end; EndUpdate(); end |
1870 |
Is it possible to (un)highlight the day/night shifts
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control. procedure TForm1.G2antt1Click(ASender: TObject; ); begin with G2antt1 do begin with Chart do begin ShowNonworkingDates := False; ShowNonworkingHours := False; BackColor := $ffffff; end; Refresh(); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin FirstVisibleDate := '1/1/2001'; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exDay; UnitWidth := 64; PaneWidth[False] := 0; NonworkingHours := 15728895; NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternSolid; NonworkingDaysPattern := NonworkingHoursPattern; NonworkingHoursColor := $f0f0f0; NonworkingDaysColor := $d4d4d4; BackColor := $fafafa; end; EndUpdate(); end |
1869 |
How can I add a vertical line at specified date-time
with G2antt1 do begin with Chart do begin PaneWidth[False] := 18; LevelCount := 2; UnitWidth := 32; FirstVisibleDate := '1/1/2010'; MarkTimeZone('M1','1/5/2010','1/5/2010',OleVariant(16711680),'50:5;3'); MarkTimeZone('M2','1/6/2010','1/6/2010',OleVariant(16711680),':5'); MarkTimeZone('M3','1/7/2010 10:00:00 AM','1/7/2010 10:00:00 AM',OleVariant(255),'50:3;;zone'); end; end |
1868 |
How do I clear all date-time zones
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control. procedure TForm1.G2antt1Click(ASender: TObject; ); begin with G2antt1 do begin Chart.RemoveTimeZone('<*>'); end end; // RClick event - Fired when right mouse button is clicked procedure TForm1.G2antt1RClick(ASender: TObject; ); begin with G2antt1 do begin Chart.RemoveTimeZone('<Z*>'); end end; with G2antt1 do begin with Chart do begin PaneWidth[False] := 18; LevelCount := 2; FirstVisibleDate := '1/1/2010'; MarkTimeZone('Z1','1/4/2010','1/5/2010',OleVariant(255),Null); MarkTimeZone('Z2','1/11/2010','1/12/2010',OleVariant(65280),Null); MarkTimeZone('M1','1/7/2010','1/8/2010',OleVariant(16711680),'50:5;3'); end; end |
1867 |
How do I place a comment above/bellow the bar (sample 4)
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 26; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 64; with Bars.Item['Task'] do begin Def[EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(18); Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(0); Def[EXG2ANTTLib_TLB.exBarExtraCaption] := ' '; Def[EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(0); Def[EXG2ANTTLib_TLB.exBarExtraCaptionVAlign] := OleVariant(16); end; end; with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2001','1/6/2001','K1','<font ;6>user comment'); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := '<font ;6>user comment'; AddBar(h,'Task','1/9/2001','1/13/2001','K2','<font ;6>user comment'); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := '<font ;6>user comment'; end; EndUpdate(); end |
1866 |
How do I place a comment above/bellow the bar (sample 3)
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 26; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 64; end; with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2001','1/6/2001','K1','<font ;6>user comment'); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(18); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(0); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := '<font ;6>user comment'; ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(0); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionVAlign] := OleVariant(16); AddBar(h,'Task','1/9/2001','1/13/2001','K2','<font ;6>user comment'); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := '<font ;6>user comment'; end; EndUpdate(); end |
1865 |
How do I place a comment under the bar (sample 2)
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 26; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 64; with Bars.Item['Task'] do begin Def[EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(18); Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(0); end; end; with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2001','1/6/2001','K1','<font ;6>user comment'); AddBar(h,'Task','1/9/2001','1/13/2001','K2','<font ;6>user comment'); end; EndUpdate(); end |
1864 |
How do I place a comment under the bar (sample 1)
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 26; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 64; end; with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2001','1/6/2001','K1','<font ;6>user comment'); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(18); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(0); AddBar(h,'Task','1/9/2001','1/13/2001','K2','<font ;6>user comment'); end; EndUpdate(); end |
1863 |
I am using exBarCanMoveToAnother to allow a bar to be moved from one item to another. The question is if it is possible somehow to highlight the current bar can be dropped to (sample 2)
// BarParentChange event - Occurs just before moving a bar from current item to another item. procedure TForm1.G2antt1BarParentChange(ASender: TObject; Item : HITEM;Key : OleVariant;NewItem : HITEM;var Cancel : WordBool); begin with G2antt1 do begin Items.SelectItem[NewItem] := True; Cancel := ConditionalFormats.Item['NOTRED'].Verify[NewItem]; end end; // ChartEndChanging event - Occurs after the chart has been changed. procedure TForm1.G2antt1ChartEndChanging(ASender: TObject; Operation : BarOperationEnum); begin with G2antt1 do begin SelForeColor := $8000000e; SelBackColor := $8000000d; Chart.SelBackColor := G2antt1.SelBackColor; ConditionalFormats.Clear(); end end; // ChartStartChanging event - Occurs when the chart is about to be changed. procedure TForm1.G2antt1ChartStartChanging(ASender: TObject; Operation : BarOperationEnum); begin with G2antt1 do begin SelForeColor := ForeColor; SelBackColor := BackColor; with Chart do begin SelBackColor := BackColor; end; with ConditionalFormats.Add('%0 contains `Allowed` ','RED') do begin Enabled := False; end; with ConditionalFormats.Add('not ( %0 contains `Allowed` )','NOTRED') do begin BackColor := $1fefefe; ChartBackColor := BackColor; end; end end; with G2antt1 do begin BeginUpdate(); VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABZkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyDQKkEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUbyDBIGQSCCZYDmKA3fj' + '0AI9P7FcgSABEEigNIxToOU4jFgeCR2TqQRK1BDQbQSFCaZrmMKIXICO40WBQFhTdLlRyBBKzLKtCyaBqWaZrWxZE72ZaFVTdOK6bDvGwoarid56X7beA2PgdZTjQi5c' + 'CxG5sLrTBZtYzfET3diOEYPQzHMpzDB7bxbGaXZBlGSZbjeGZBUjQc7yfSNMw/HqKZQ6cQwTAIgI'); (IUnknown(Columns.Add('Members')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); with Chart do begin SelBackColor := G2antt1.SelBackColor; FirstVisibleDate := '9/20/2006'; AllowLinkBars := False; AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar; AllowSelectObjects := EXG2ANTTLib_TLB.exNoSelectObjects; LevelCount := 2; PaneWidth[False] := 96; Bars.Item['Task'].OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsIncludeCaption) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack); end; with Items do begin h := AddItem('Member <b>1</b>'); h := AddItem('Member <b>Allowed</b>'); AddBar(h,'Task','9/21/2006','9/23/2006','T102','Task <b>102</b>'); ItemBar[h,'T102',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); ItemBar[h,'T102',EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True); h := AddItem('Member <b>Allowed</b>'); h := AddItem('Member <b>4</b>'); end; EndUpdate(); end |
1862 |
I am using exBarCanMoveToAnother to allow a bar to be moved from one item to another. The question is if it is possible somehow to highlight the current bar can be dropped to (sample 1)
// BarParentChange event - Occurs just before moving a bar from current item to another item. procedure TForm1.G2antt1BarParentChange(ASender: TObject; Item : HITEM;Key : OleVariant;NewItem : HITEM;var Cancel : WordBool); begin with G2antt1 do begin Items.SelectItem[NewItem] := True; Cancel := ConditionalFormats.Item['NOTRED'].Verify[NewItem]; end end; // ChartEndChanging event - Occurs after the chart has been changed. procedure TForm1.G2antt1ChartEndChanging(ASender: TObject; Operation : BarOperationEnum); begin with G2antt1 do begin SelForeColor := $8000000e; SelBackColor := $8000000d; Chart.SelBackColor := G2antt1.SelBackColor; ConditionalFormats.Clear(); end end; // ChartStartChanging event - Occurs when the chart is about to be changed. procedure TForm1.G2antt1ChartStartChanging(ASender: TObject; Operation : BarOperationEnum); begin with G2antt1 do begin SelForeColor := ForeColor; SelBackColor := BackColor; with Chart do begin SelBackColor := BackColor; end; with ConditionalFormats.Add('%0 contains `Allowed` ','RED') do begin BackColor := $8080ff; ChartBackColor := BackColor; end; with ConditionalFormats.Add('not ( %0 contains `Allowed` )','NOTRED') do begin Enabled := False; end; end end; with G2antt1 do begin BeginUpdate(); (IUnknown(Columns.Add('Members')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); with Chart do begin SelBackColor := G2antt1.SelBackColor; FirstVisibleDate := '9/20/2006'; AllowLinkBars := False; AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar; AllowSelectObjects := EXG2ANTTLib_TLB.exNoSelectObjects; LevelCount := 2; PaneWidth[False] := 96; Bars.Item['Task'].OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsIncludeCaption) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack); end; with Items do begin h := AddItem('Member <b>1</b>'); h := AddItem('Member <b>Allowed</b>'); AddBar(h,'Task','9/21/2006','9/23/2006','T102','Task <b>102</b>'); ItemBar[h,'T102',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); ItemBar[h,'T102',EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True); h := AddItem('Member <b>Allowed</b>'); h := AddItem('Member <b>4</b>'); end; EndUpdate(); end |
1861 |
How can I check, if a specified item fits a specified conditional format expression
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null); end; end end; // MouseMove event - Occurs when the user moves the mouse. procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin h := ItemFromPoint[-1,-1,c,hit]; OutputDebugString( ConditionalFormats.Item['RED'].Verify[h] ); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin FirstVisibleDate := '8/3/1994'; PaneWidth[False] := 256; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exDay; FirstWeekDay := EXG2ANTTLib_TLB.exMonday; end; Chart.SelBackColor := G2antt1.SelBackColor; SelBackMode := EXG2ANTTLib_TLB.exTransparent; ColumnAutoResize := False; ContinueColumnScroll := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null); end; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); Items.AllowCellValueToItemBar := True; Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1); Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2); with ConditionalFormats do begin with Add('%1 = 5','RED') do begin BackColor := $8080ff; ChartBackColor := BackColor; end; end; EndUpdate(); end |
1860 |
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 3)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null); end; end end; with G2antt1 do begin BeginUpdate(); SelBackMode := EXG2ANTTLib_TLB.exTransparent; with Chart do begin SelBackColor := G2antt1.SelBackColor; FirstVisibleDate := '8/3/1994'; PaneWidth[False] := 256; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exDay; FirstWeekDay := EXG2ANTTLib_TLB.exMonday; end; ColumnAutoResize := False; ContinueColumnScroll := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null); end; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); Items.AllowCellValueToItemBar := True; Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1); Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2); with ConditionalFormats do begin with Add('%1 in (3,5)',Null) do begin ApplyToBars := 'Task'; BarColor := $ff; BarOverviewColor := $ff; ForeColor := BarColor; Bold := True; end; end; EndUpdate(); end |
1859 |
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 2)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null); end; end end; with G2antt1 do begin BeginUpdate(); SelBackMode := EXG2ANTTLib_TLB.exTransparent; with Chart do begin SelBackColor := G2antt1.SelBackColor; FirstVisibleDate := '8/3/1994'; PaneWidth[False] := 256; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exDay; FirstWeekDay := EXG2ANTTLib_TLB.exMonday; end; ColumnAutoResize := False; ContinueColumnScroll := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null); end; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); Items.AllowCellValueToItemBar := True; Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1); Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2); with ConditionalFormats do begin with Add('%1 in (3,5)',Null) do begin ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($1); BackColor := $8080ff; end; with Add('%1 in (3,5)',Null) do begin ApplyToBars := 'Task'; BarColor := $ff; BarOverviewColor := $ff; ChartBackColor := $8080ff; end; end; EndUpdate(); end |
1858 |
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 1)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null); end; end end; with G2antt1 do begin BeginUpdate(); with Chart do begin FirstVisibleDate := '8/3/1994'; PaneWidth[False] := 256; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exDay; FirstWeekDay := EXG2ANTTLib_TLB.exMonday; end; SelBackMode := EXG2ANTTLib_TLB.exTransparent; BackColorAlternate := RGB(240,240,240); ColumnAutoResize := False; ContinueColumnScroll := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null); end; Chart.SelBackColor := G2antt1.SelBackColor; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); Items.AllowCellValueToItemBar := True; Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1); Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2); with ConditionalFormats do begin with Add('%1 in (3,5)',Null) do begin ApplyToBars := 'Task'; BarColor := $ff; BarOverviewColor := $ff; BackColor := $8080ff; ChartBackColor := $8080ff; end; end; EndUpdate(); end |
1857 |
How can I get ride / hide the image being dragged by OLE Drag and Drop
// OLEStartDrag event - Occurs when the OLEDrag method is called. procedure TForm1.G2antt1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer); begin // Data.SetData("data to drag") with G2antt1 do begin AllowedEffects := 1; end end; with G2antt1 do begin OLEDropMode := EXG2ANTTLib_TLB.exOLEDropManual; Background[EXG2ANTTLib_TLB.exDragDropAfter] := $ffffff; LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; Columns.Add('Default'); with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child 1'); InsertItem(h,Null,'Child 2'); ExpandItem[h] := True; end; end |
1856 |
How do I change the visual appearance of the split bars
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 24; with VisualAppearance do begin Add(1,'gBFLBCJwBAEHhEJAAEhABEgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGMYhTgmFgAQhFcZQSB0Eg1BKMYwjOJgFgmEQxDQNIBQSLIYQiGSWZBGUBJDjWGgyQjOEByDI' + 'MRwjE6UZBgeCRViEMo9RrSEZSLAdGRFAaVYDdULBEACU5VRZQFCwTQcBhpIyoZpkECobh2TYgQjYNT1NSkLxeGoSbbuGhBQrOAw1XTEMhyDR0LTJM6bMBACqrBi2L4xU' + 'RfOBRXLQAYbHjAZ7rSgacjKRpKRbmAV4Oh+O5pQjadp1TidNwHLoAK7nGwbbgmfwAZrAdjABj1HgBNS2dDkaabQrKEZ4XYAHAXVROOQTWIANb2XC4bwSLAwTJJYzjThi' + 'C2GInFOOQckiVw6AeCIvHSBzkCwDxfE6WZ2jsehICadx5kGYZdDgMRrA2c4NmWY56jyGxgEQJIgGkGJHEGVByBkWoCjkNAAAQIQ2AYRoDGQJAoKuZYgBgRZHggHZqAkA' + 'ZDjYGA7E8KB0kyB5LiiBgigiYhIgiQ4Jk4WIkn6CphjQDgbDmIwDBIMg3GMQ4uDaDZjgiZg6DIY5DGIPg/GQBAMneEJMFkFJqhGTppCYSoSmSSQ2EoPJlAMIhSDmZREA' + 'yVYVk0eRkm+FpkmkdhehaTp4iSZQxiYRAODIMQODmJJxhqTwJjYbobmcCZGHKGxLjmVQDC+J4DiYeg8GGWYuH6H5oAoBoCgcTwimaBodmeGZongPRPCoCoOiOZ5qBIIo' + 'iAuaZomkPoPGOToEiaaZKHaHYfiUA5OhMAAngoVh6iYKYqHqKoqmGWoGiOKRkHOKJ7D2TxKgaNotmuCpmFAPQrkqPh4iwaw6laOowmwOpwnSL4LmiXJ9D4TxbBqTozm0' + 'CxGjwPRtEsIJsjWT4Dlydo1C2Sx2l6N5uAOWpijIDpbhYQ42i4K4mmqOpukuMpnjIJIjmKco5m8S5WnaPZkDuSJ4h0S46FKcY8m+DAHAGPovkoUhgD4cILmsCpCnCTA2' + 'nKQgPhwFokh4JpjmsFpEDGDBnBqRpwgwWJ6kSKhZjie5FnGTIXCWR4yAmYh+D+D48g8HpLnMDJHDIPoylObwpWIY5/CyTJzkydw1kSIhzA6ZQ7E+fJrDWUZ0g0JxKksT' + '5NDSPJTmUaRcmAN5Nn0FJ/lMdYNGcWpWnWHRaGAMZ2AQDoEDKNhLicVpViQDYnGqWpPl2HxFDQNwJgoLoGGaCcDInRdjMCuNYbovR2D2FyNgNIcAJC5FWKwNwcBqAzCW' + 'BoPgTA8BkEwFwN4HRjjyAMH8EgcQ5CaGIFoAAHQ3AgAAIAQBAQ=='); Add(2,'gBFLBCJwBAEHhEJAAEhABBYDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGMYhTgmFgAQhFcZQSB0Eg1BKMYwjOJgFgmEQxDQNIBQSLIYQiGSWZTgMYRSASI43RoMUIzVA' + 'cQxDEaIZLlGQYHgkNIhDJPcZ0VDUbQGBiQIRmIAHNBwJJUVZFdBDLQkQy5HapZDkECobA+CZQTzUUI1LS9WS1HYaRJle4YRDUMJyQjdV4TRINHQvMinYzqOzrOhaW5TS' + 'zLcqyCK0SxxR4AJ4yGobJjiQYJShXcxyDQ8dyZC7PQohG7ofxUAKDVjhMjZRQeMS9JCwaThHElRQHMyBdJkKA9Iq2WaGXBeeQ3JbNbzrYzHb5hHZgAzTOoWbzWFT8BJO' + 'FOCAYGcJJjHGTh+C2H40AAL5ckyBQDFkKoWHYLw9iGTpGDUY4zkIdwbF8JhbgMc5hF6OJ8C6BhTkOcBAlsR4NnQaAflAIQJBQBoRgwdAdEcIYVEUQJBGYOBCBMYQUGgN' + 'hCEKB5FB4VBBgQXJgF+IAzA4Ig5GIQIQBwOxiGiIgngoYpIi4LoKiMA5KDIMwjEKakmk6OJkkmDpNgidgtgwI55AYJw5iQQwSEYNxkgiZJrEITppDSc4TkyCREmeFJkC' + 'kAkLmWAwWFoOolkkNheDuJJJDSb4YmIQ4UkaGZlFkVJVhqTR5jYYw7mWeQ1AkPAnEmVh1C6Z4JiYL4KGQYwQmOH5PBoBh2h0EIaAaBg8GMI5Ij6IpokoNoOiOaJDiaEo' + 'iA8KgegGIRpGoZoaiaaZDmCdYlGkZAmgmKJqEqFomimaoKCaIoqGqSo2iwQhknqRoyiyaxKlaNotk8OpCjiLprkqbQJD0LALAaQowmwSwWkaMZQhOVpKjKbJLDaTozm0' + 'CxFAkPYtEsVpWjWbYLGaWo2lCGRil6N5pAuBpiDsbhLH6Zo3G4ax6HhYgpFibYjCWa4ml4QhPguVp2D4b4Li6bYPmiSZWngPhvGuWQJj+b5zmsBo+iePAmDCIwoGwGJ6' + 'kEL4MA8EJDjCC46FWQwoBObwGkQD4UCcDpDg+PIHBWPpiHwYJxD+MgcH8BpH4cBJ7kicIrnKC4hg+fIjCoPoQhyOwuD8M5CnMPpJCMCIIkOOQOlOfw1k6MnJDwPw0GOf' + 'hvDGdQNAIKdalOAJfDedJdC8SxCeyNJQleZhdEoJ4iEyLYWlWVx0GQJJslqTQtjcVJYi6aZ8mMM43EmFwCECJkfYyWiDuAuG0EgdBNB8AYHYMgxwEM1EAIAgIA=='); Add(3,'CP:2 -2 -2 2 2'); end; Columns.Add('Task'); with Chart do begin LevelCount := 2; PaneWidth[False] := 48; FirstVisibleDate := '1/1/2001'; with Bars do begin with Add('A') do begin Height := 15; Color := $2000000; Pattern := EXG2ANTTLib_TLB.exPatternBDiagonal; end; with Add('Task:A') do begin Shortcut := 'Task'; Height := 15; Color := $1000000; Def[EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True); end; end; NonworkingDaysColor := $f0f0f0; SelBarColor := $ff0000; end; with Items do begin AddBar(AddItem('Task 1'),'Task','1/2/2001','1/16/2001',Null,Null); h := AddItem('Task 2'); AddBar(h,'Task','1/2/2001','1/16/2001','',Null); ItemBar[h,'',EXG2ANTTLib_TLB.exBarColor] := OleVariant(65535); h := AddItem('Task 3'); AddBar(h,'Task','1/2/2001','1/16/2001','',Null); ItemBar[h,'',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True); h := AddItem('Task 4'); AddBar(h,'Task','1/2/2001','1/16/2001','',Null); ItemBar[h,'',EXG2ANTTLib_TLB.exBarNonWorkingColor] := OleVariant(58753152); h := AddItem('Task 5'); AddBar(h,'Task','1/2/2001','1/16/2001','',Null); ItemBar[h,'',EXG2ANTTLib_TLB.exBarNonWorkingColor] := OleVariant(25198720); h := AddItem('Task 6'); AddBar(h,'Task','1/2/2001','1/16/2001','',Null); ItemBar[h,'',EXG2ANTTLib_TLB.exBarNonWorkingColor] := OleVariant(2130771712); end; EndUpdate(); end |
1855 |
Is there a way to display automatically the duration ( days, hours, minutes ) of the bar next to it
with G2antt1 do begin BeginUpdate(); with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 36; end; BackColorLevelHeader := BackColor; with Chart do begin PaneWidth[False] := 64; FirstVisibleDate := '4/6/2009'; LevelCount := 2; with Bars.Add('Task:Progress') do begin Shortcut := 'TaskS'; Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=((1:=int(0:= (%258))) != 0 ? (=:1 + '' day(s)'') : '''') + (=:1 ? '' '' : '''' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0' + ' ? =:1 + '' hour(s)'' : '''' ) + (=:1 ? '' '' : '''' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + '' min(s)'' : '''')%>'; end; ResizeUnitScale := EXG2ANTTLib_TLB.exMinute; end; with Items do begin AddBar(AddItem('T1'),'TaskS','4/10/2009 2:30:00 AM','4/16/2009 2:30:00 AM',Null,Null); AddBar(AddItem('T2'),'TaskS','4/14/2009 9:00:00 AM','4/22/2009 10:10:00 AM',Null,Null); ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True); ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; EndUpdate(); end |
1854 |
Is there a way to display automatically the duration ( days, hours, minutes ) of the bar next to it
with G2antt1 do begin BeginUpdate(); with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 36; end; BackColorLevelHeader := BackColor; with Chart do begin PaneWidth[False] := 64; FirstVisibleDate := '4/6/2009'; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exHour; ResizeUnitScale := EXG2ANTTLib_TLB.exMinute; Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=((1:=int(0:= (%513))) != 0 ? (=:1 + '' day(s)'') : '''') + (=:1 ? '' '' : '''' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0' + ' ? =:1 + '' hour(s)'' : '''' ) + (=:1 ? '' '' : '''' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + '' min(s)'' : '''')%>'; end; with Items do begin AddBar(AddItem('T1'),'Task','4/6/2009 2:30:00 AM','4/6/2009 12:35:00 PM',Null,Null); AddBar(AddItem('T2'),'Task','4/6/2009 9:00:00 AM','4/6/2009 10:10:00 AM',Null,Null); ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; EndUpdate(); end |
1853 |
Does it support single or multiple split pane views
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); Background[EXG2ANTTLib_TLB.exSplitBar] := $808080; Background[EXG2ANTTLib_TLB.exCSplitBar] := $282828; with Chart do begin LevelCount := 2; PaneWidth[False] := 76; FirstVisibleDate := '1/1/2001'; with Bars.Item['Summary'] do begin Pattern := EXG2ANTTLib_TLB.exPatternShadow; Shape := EXG2ANTTLib_TLB.exShapeSolidDown; Color := $ff0000; StartColor := Color; EndColor := Color; end; AllowSplitPane := Integer(EXG2ANTTLib_TLB.exAllowTwoSplitPane) Or Integer(EXG2ANTTLib_TLB.exAllowOneSplitPane); SplitPaneWidth := '128,128'; end; with Items do begin hSummary := AddItem('Summary'); AddBar(hSummary,'Summary','1/2/2001','1/2/2001','',Null); hTask := InsertItem(hSummary,Null,'Task A'); AddBar(hTask,'Task','1/2/2001','1/5/2001','K1',Null); hTask := InsertItem(hSummary,Null,'Task B'); AddBar(hTask,'Task','1/4/2001','1/8/2001','K2',Null); hTask := InsertItem(hSummary,Null,'Task C'); AddBar(hTask,'Task','2/23/2001','2/27/2001','K3',Null); ExpandItem[hSummary] := True; DefineSummaryBars(hSummary,'',-1,'<*>'); end; EndUpdate(); end |
1852 |
How can I programmatically add more split panes ( by code)
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); Background[EXG2ANTTLib_TLB.exSplitBar] := $808080; with Chart do begin LevelCount := 2; PaneWidth[False] := 76; FirstVisibleDate := '1/1/2001'; with Bars.Item['Summary'] do begin Pattern := EXG2ANTTLib_TLB.exPatternShadow; Shape := EXG2ANTTLib_TLB.exShapeSolidDown; Color := $ff0000; StartColor := Color; EndColor := Color; end; AllowSplitPane := EXG2ANTTLib_TLB.exAllowOneSplitPane; end; with Items do begin hSummary := AddItem('Summary'); AddBar(hSummary,'Summary','1/2/2001','1/2/2001','',Null); hTask := InsertItem(hSummary,Null,'Task A'); AddBar(hTask,'Task','1/2/2001','1/5/2001','K1',Null); hTask := InsertItem(hSummary,Null,'Task B'); AddBar(hTask,'Task','1/4/2001','1/8/2001','K2',Null); hTask := InsertItem(hSummary,Null,'Task C'); AddBar(hTask,'Task','2/23/2001','2/27/2001','K3',Null); ExpandItem[hSummary] := True; DefineSummaryBars(hSummary,'',-1,'<*>'); end; with Chart do begin ScrollTo(EndPrintDate,OleVariant(1)); SplitPaneWidth := '128,128,128'; ScrollTo(StartPrintDate,OleVariant(1)); end; EndUpdate(); end |
1851 |
How can I programmatically add a split pane, or adding a split view at runtime
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); Background[EXG2ANTTLib_TLB.exCSplitBar] := $282828; with Chart do begin LevelCount := 2; PaneWidth[False] := 76; FirstVisibleDate := '1/1/2001'; with Bars.Item['Summary'] do begin Pattern := EXG2ANTTLib_TLB.exPatternShadow; Shape := EXG2ANTTLib_TLB.exShapeSolidDown; Color := $ff0000; StartColor := Color; EndColor := Color; end; AllowSplitPane := EXG2ANTTLib_TLB.exAllowOneSplitPane; end; with Items do begin hSummary := AddItem('Summary'); AddBar(hSummary,'Summary','1/2/2001','1/2/2001','',Null); hTask := InsertItem(hSummary,Null,'Task A'); AddBar(hTask,'Task','1/2/2001','1/5/2001','K1',Null); hTask := InsertItem(hSummary,Null,'Task B'); AddBar(hTask,'Task','1/4/2001','1/8/2001','K2',Null); hTask := InsertItem(hSummary,Null,'Task C'); AddBar(hTask,'Task','2/23/2001','2/27/2001','K3',Null); ExpandItem[hSummary] := True; DefineSummaryBars(hSummary,'',-1,'<*>'); end; with Chart do begin ScrollTo(EndPrintDate,OleVariant(1)); SplitPaneWidth := '128'; ScrollTo(StartPrintDate,OleVariant(1)); end; EndUpdate(); end |
1850 |
Is there any way, property, procedure or anything else to split the control into multiple views
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); Background[EXG2ANTTLib_TLB.exCSplitBar] := $282828; with Chart do begin LevelCount := 2; PaneWidth[False] := 76; FirstVisibleDate := '1/1/2001'; with Bars.Item['Summary'] do begin Pattern := EXG2ANTTLib_TLB.exPatternShadow; Shape := EXG2ANTTLib_TLB.exShapeSolidDown; Color := $ff0000; StartColor := Color; EndColor := Color; end; AllowSplitPane := EXG2ANTTLib_TLB.exAllowOneSplitPane; end; with Items do begin hSummary := AddItem('Summary'); AddBar(hSummary,'Summary','1/2/2001','1/2/2001','',Null); hTask := InsertItem(hSummary,Null,'Task A'); AddBar(hTask,'Task','1/2/2001','1/5/2001','K1',Null); hTask := InsertItem(hSummary,Null,'Task B'); AddBar(hTask,'Task','1/4/2001','1/8/2001','K2',Null); hTask := InsertItem(hSummary,Null,'Task C'); AddBar(hTask,'Task','2/23/2001','2/27/2001','K3',Null); ExpandItem[hSummary] := True; DefineSummaryBars(hSummary,'',-1,'<*>'); end; EndUpdate(); end |
1849 |
It appears that I can not use the ItemFromPoint property in my environment. What else I can do
// MouseMove event - Occurs when the user moves the mouse. procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin OutputDebugString( ExecuteTemplate('Dim c, hit; ItemFromPoint(-1,-1, c, hit )') ); end end; with G2antt1 do begin BeginUpdate(); with (IUnknown(Columns.Add('Default')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; Chart.PaneWidth[True] := 0; with Items do begin h := AddItem('Root 1'); InsertItem(h,Null,'Child 1'); InsertItem(h,Null,'Child 2'); ExpandItem[h] := True; h := AddItem('Root 2'); InsertItem(h,Null,'Child 1'); InsertItem(h,Null,'Child 2'); ExpandItem[h] := True; end; EndUpdate(); end |
1848 |
How can I change the color for selected links (ebn)
with G2antt1 do begin BeginUpdate(); with VisualAppearance do begin RenderType := -2; Add(1,'gBFLBCJwBAEHhEJAEGg4BNkMQAAYAQGKIYBkAKBQAGaAoDDYNQwQwAAwjIKEEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIxAJIcaw0GSEZwgOQZBi' + 'OEYnDANMgzDLMZR7DajYymSA6LiKNo+QjKFB0NLMVRtEIIIzCSCaNomT4DS4NIi2DYcVhhMqBYbtCZZBo2FpZUxXdL0BJMVxbHKYJikW4pVjoAJ+TxccjVDQNJyLQ6rY' + 'zuAAKNpuO58RbdGDQHA9KyfLCEcTxYAMbp6X5kaBZVp2VCMRzbTLUIDzPNVCTrNIaJioAaMeiCG5NUzieqRNalLABFjZMIHDbtGynDIJZruW52+CLIZpWbEOiRXr2Txx' + 'gGYp5Fie5mAYBgIgSFDrDOIZUmQZYiECXJUjIEQ3lUGgbEIRQcg+Hg8DEFxYFuOR/i+X5znufh/omBgCgCVwjn4BoBmCCAmAqApgkefgMgOYQID4DoELsUgTgUYYIC4F' + '4GGGSAaBuBxhhgfgggUYgog4EYJGIaBJn6ChiBiLgsgkIpoj4J4BCMSJWDaDZjgiZgCEAQCAgA=='); Add(2,'CP:1 -2 -2 2 2'); end; DefaultItemHeight := 24; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; NonworkingDays := 0; LinksStyle := EXG2ANTTLib_TLB.exLinkSolid; LinksWidth := 2; SelLinkColor := $20000ff; end; with Items do begin h1 := AddItem('Task 1'); AddBar(h1,'Task','1/2/2001','1/4/2001','',Null); h2 := AddItem('Task 2'); AddBar(h2,'Task','1/2/2001','1/4/2001','',Null); AddLink('L1',h1,'',h2,''); Link['L1',EXG2ANTTLib_TLB.exLinkSelected] := OleVariant(True); h3 := AddItem('Task 3'); AddBar(h3,'Task','1/2/2001','1/4/2001','',Null); AddLink('L2',h2,'',h3,''); SchedulePDM(0,''); end; EndUpdate(); end |
1847 |
How can I change the color for selected links (color, no frame)
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 24; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; NonworkingDays := 0; LinksStyle := EXG2ANTTLib_TLB.exLinkSolid; LinksWidth := 2; SelLinkColor := $7f0000ff; end; with Items do begin h1 := AddItem('Task 1'); AddBar(h1,'Task','1/2/2001','1/4/2001','',Null); h2 := AddItem('Task 2'); AddBar(h2,'Task','1/2/2001','1/4/2001','',Null); AddLink('L1',h1,'',h2,''); Link['L1',EXG2ANTTLib_TLB.exLinkSelected] := OleVariant(True); h3 := AddItem('Task 3'); AddBar(h3,'Task','1/2/2001','1/4/2001','',Null); AddLink('L2',h2,'',h3,''); SchedulePDM(0,''); end; EndUpdate(); end |
1846 |
How can I change the color for selected links (color, frame)
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 24; Columns.Add('Task'); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; NonworkingDays := 0; LinksStyle := EXG2ANTTLib_TLB.exLinkSolid; LinksWidth := 2; SelLinkColor := $ff; end; with Items do begin h1 := AddItem('Task 1'); AddBar(h1,'Task','1/2/2001','1/4/2001','',Null); h2 := AddItem('Task 2'); AddBar(h2,'Task','1/2/2001','1/4/2001','',Null); AddLink('L1',h1,'',h2,''); Link['L1',EXG2ANTTLib_TLB.exLinkSelected] := OleVariant(True); h3 := AddItem('Task 3'); AddBar(h3,'Task','1/2/2001','1/4/2001','',Null); AddLink('L2',h2,'',h3,''); SchedulePDM(0,''); end; EndUpdate(); end |
1845 |
By default, the bar gets selected once the user releases the button of the mouse. Is it possible to change this behavior so the bar gets selected once the user presses the button of the mouse
// MouseDown event - Occurs when the user presses a mouse button. procedure TForm1.G2antt1MouseDown(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin h := ItemFromPoint[-1,-1,c,hit]; b := Chart.BarFromPoint[-1,-1]; with Items do begin ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(False); ItemBar[h,OleVariant(b),EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True); end; end end; with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 32; with VisualAppearance do begin Add(1,'gBFLBCJwBAEHhEJAEGg4BNkMQAAYAQGKIYBkAKBQAGaAoDDYNQwQwAAwjIKEEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIxAJIcaw0GSEZwgOQZBi' + 'OEYnDANMgzDLMZR7DajYymSA6LiKNo+QjKFB0NLMVRtEIIIzCSCaNomT4DS4NIi2DYcVhhMqBYbtCZZBo2FpZUxXdL0BJMVxbHKYJikW4pVjoAJ+TxccjVDQNJyLQ6rY' + 'zuAAKNpuO58RbdGDQHA9KyfLCEcTxYAMbp6X5kaBZVp2VCMRzbTLUIDzPNVCTrNIaJioAaMeiCG5NUzieqRNalLABFjZMIHDbtGynDIJZruW52+CLIZpWbEOiRXr2Txx' + 'gGYp5Fie5mAYBgIgSFDrDOIZUmQZYiECXJUjIEQ3lUGgbEIRQcg+Hg8DEFxYFuOR/i+X5znufh/omBgCgCVwjn4BoBmCCAmAqApgkefgMgOYQID4DoELsUgTgUYYIC4F' + '4GGGSAaBuBxhhgfgggUYgog4EYJGIaBJn6ChiBiLgsgkIpoj4J4BCMSJWDaDZjgiZgCEAQCAgA=='); Add(2,'CP:1 -2 -2 2 2'); end; with Chart do begin AllowSelectObjects := EXG2ANTTLib_TLB.exNoSelectObjects; FirstVisibleDate := '1/1/2002'; SelBarColor := $2000000; PaneWidth[False] := 48; end; Columns.Add('Task'); with Items do begin h := AddItem('Task'); AddBar(h,'Task','1/2/2002','1/4/2002','A',Null); AddBar(h,'Task','1/6/2002','1/10/2002','B',Null); AddBar(h,'Task','1/11/2002','1/14/2002','C',Null); ItemBar[h,'B',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True); end; EndUpdate(); end |
1844 |
How can I change the bar's color (sample 3, ebn, individual, global)
with G2antt1 do begin BeginUpdate(); with VisualAppearance do begin RenderType := -2; Add(1,'gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwHI' + 'ERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6S' + 'TCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKpF' + 'HIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQhaX' + 'QIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC'); Add(2,'gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQGh' + '+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKfa' + 'ZACj4arKejrRDCMAggI='); end; Columns.Add('Task'); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $1000000; end; with Bars.Item['Summary'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $2000000; end; end; with Items do begin hSummaryJ := AddItem('Summary A'); AddBar(hSummaryJ,'Summary','1/2/2001','1/2/2001','J',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.1'); AddBar(hTaskJ,'Task','1/2/2001','1/5/2001','J1',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.2'); AddBar(hTaskJ,'Task','1/4/2001','1/8/2001','J2',Null); DefineSummaryBars(hSummaryJ,'J',-1,'<*>'); hSummaryK := AddItem('Summary B'); AddBar(hSummaryK,'Summary','1/2/2001','1/2/2001','K',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.1'); AddBar(hTaskK,'Task','1/2/2001','1/5/2001','K1',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.2'); AddBar(hTaskK,'Task','1/4/2001','1/8/2001','K2',Null); DefineSummaryBars(hSummaryK,'K',-1,'<*>'); ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255); ExpandItem[0] := True; end; EndUpdate(); end |
1843 |
How can I change the bar's color (sample 2, global)
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $ff; end; with Bars.Item['Summary'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $ff; StartColor := Color; EndColor := Color; end; end; with Items do begin hSummaryJ := AddItem('Summary A'); AddBar(hSummaryJ,'Summary','1/2/2001','1/2/2001','J',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.1'); AddBar(hTaskJ,'Task','1/2/2001','1/5/2001','J1',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.2'); AddBar(hTaskJ,'Task','1/4/2001','1/8/2001','J2',Null); DefineSummaryBars(hSummaryJ,'J',-1,'<*>'); hSummaryK := AddItem('Summary B'); AddBar(hSummaryK,'Summary','1/2/2001','1/2/2001','K',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.1'); AddBar(hTaskK,'Task','1/2/2001','1/5/2001','K1',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.2'); AddBar(hTaskK,'Task','1/4/2001','1/8/2001','K2',Null); DefineSummaryBars(hSummaryK,'K',-1,'<*>'); ExpandItem[0] := True; end; EndUpdate(); end |
1842 |
How can I change the bar's color (sample 1, individual)
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Bars.Item['Summary'].Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; with Items do begin hSummaryJ := AddItem('Summary A'); AddBar(hSummaryJ,'Summary','1/2/2001','1/2/2001','J',' (default)'); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.1'); AddBar(hTaskJ,'Task','1/2/2001','1/5/2001','J1','(default)'); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.2'); AddBar(hTaskJ,'Task','1/4/2001','1/8/2001','J2','(default)'); DefineSummaryBars(hSummaryJ,'J',-1,'<*>'); hSummaryK := AddItem('Summary B'); AddBar(hSummaryK,'Summary','1/2/2001','1/2/2001','K',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.1'); AddBar(hTaskK,'Task','1/2/2001','1/5/2001','K1',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.2'); AddBar(hTaskK,'Task','1/4/2001','1/8/2001','K2',Null); DefineSummaryBars(hSummaryK,'K',-1,'<*>'); ItemBar[hSummaryK,'',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255); ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255); ExpandItem[0] := True; end; EndUpdate(); end |
1841 |
How do I make the control read-only (method 2)
// Edit event - Occurs just before editing the focused cell. procedure TForm1.G2antt1Edit(ASender: TObject; Item : HITEM;ColIndex : Integer;var Cancel : WordBool); begin with G2antt1 do begin Cancel := True; end end; with G2antt1 do begin BeginUpdate(); with (IUnknown(Columns.Add('Editor')) as EXG2ANTTLib_TLB.Column).Editor do begin EditType := EXG2ANTTLib_TLB.CheckListType; AddItem(1,'One',Null); AddItem(2,'Two',Null); end; with (IUnknown(Columns.Add('Check')) as EXG2ANTTLib_TLB.Column) do begin with Editor do begin EditType := EXG2ANTTLib_TLB.CheckValueType; Option[EXG2ANTTLib_TLB.exCheckValue1] := OleVariant(2); end; end; with Items do begin CellValue[OleVariant(AddItem(OleVariant(1))),OleVariant(1)] := OleVariant(0); CellValue[OleVariant(AddItem(OleVariant(2))),OleVariant(1)] := OleVariant(1); end; EndUpdate(); end |
1840 |
How do I make the control read-only (method 1)
with G2antt1 do begin BeginUpdate(); ReadOnly := EXG2ANTTLib_TLB.exReadOnly; with (IUnknown(Columns.Add('Editor')) as EXG2ANTTLib_TLB.Column).Editor do begin EditType := EXG2ANTTLib_TLB.CheckListType; AddItem(1,'One',Null); AddItem(2,'Two',Null); end; with (IUnknown(Columns.Add('Check')) as EXG2ANTTLib_TLB.Column) do begin with Editor do begin EditType := EXG2ANTTLib_TLB.CheckValueType; Option[EXG2ANTTLib_TLB.exCheckValue1] := OleVariant(2); end; end; with Items do begin CellValue[OleVariant(AddItem(OleVariant(1))),OleVariant(1)] := OleVariant(0); CellValue[OleVariant(AddItem(OleVariant(2))),OleVariant(1)] := OleVariant(1); end; EndUpdate(); end |
1839 |
The ReadOnly property does not prevent changing the column's check-box (sample 2)
with G2antt1 do begin BeginUpdate(); ShowFocusRect := False; with (IUnknown(Columns.Add('C1')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 18; Editor.EditType := EXG2ANTTLib_TLB.CheckValueType; end; Columns.Add('C2'); with Items do begin CellValue[OleVariant(AddItem(OleVariant(0))),OleVariant(1)] := 'Item 1'; CellValue[OleVariant(AddItem(OleVariant(-1))),OleVariant(1)] := 'Item 2'; CellValue[OleVariant(AddItem(OleVariant(0))),OleVariant(1)] := 'Item 3'; end; ReadOnly := EXG2ANTTLib_TLB.exReadOnly; Columns.Item[OleVariant(0)].Editor.Option[EXG2ANTTLib_TLB.exCheckValue2] := OleVariant(2); EndUpdate(); end |
1838 |
The ReadOnly property does not prevent changing the column's check-box (sample 1)
with G2antt1 do begin BeginUpdate(); ShowFocusRect := False; with (IUnknown(Columns.Add('C1')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 18; with Editor do begin EditType := EXG2ANTTLib_TLB.CheckValueType; Option[EXG2ANTTLib_TLB.exCheckValue2] := OleVariant(1); end; end; Columns.Add('C2'); with Items do begin CellValue[OleVariant(AddItem(OleVariant(0))),OleVariant(1)] := 'Item 1'; CellValue[OleVariant(AddItem(OleVariant(-1))),OleVariant(1)] := 'Item 2'; CellValue[OleVariant(AddItem(OleVariant(0))),OleVariant(1)] := 'Item 3'; end; ReadOnly := EXG2ANTTLib_TLB.exReadOnly; EndUpdate(); end |
1837 |
How can I change the visual appearance of the control's split bar (sample 3)
with G2antt1 do begin BeginUpdate(); Columns.Add('Default'); with VisualAppearance do begin Add(1,'gBFLBCJwBAEHhEJAAEhABPsIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGUQxCKIZhzEgYRokAYYRDIMg5SBIETzFIMCQ9AaaJpieRJGi' + 'iKoJSxHErgFD8QxzEKOZqnCapViAMpOAZQAwDAIoWhpKKBRhqOpRUhaID/WAAFCUZK4ASTDCyLRgNy4lACgI'); Add(2,'gBFLBCJwBAEHhEJAAEhABPkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGUQxCKIZhzEgYRoiEYhXDiIAxARHcgyBIMPQJGSaZpkSRpIi' + 'qHItS6BM4RVKkcw7G6BaJnGJpADKTQGQiMIwDAIoWhpKCBaiqSpqMglf5fg6pOJqHACZZKWLNLpxDBMAkBA='); Add(3,'gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGQCwTCIYhmHKSRhGSIRSDcOIgDCBEbyDIEQw9AiZZqmaRZHi' + 'mK4cS5MEhwHKsLSLGyOZwoSapbgmJooU5KUwSYKQcxBI6laYpIAKJhiWobTxUEBwMKlJw5KoBJxjKqIbp2XZsUxIAxXEA1HBgGASRZGS5bDreeQ0UZCL74GAFUy/Liba' + '6weqnLhGCYBgIA=='); end; Background[EXG2ANTTLib_TLB.exSplitBar] := $1808080; Background[EXG2ANTTLib_TLB.exHSplitBar] := $2808080; Background[EXG2ANTTLib_TLB.exCSplitBar] := $3010101; BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; PaneWidth[False] := 64; HistogramVisible := True; HistogramHeight := 64; OverviewHeight := 48; OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll; end; EndUpdate(); end |
1836 |
How can I change the color for the control's split bar (sample 2)
with G2antt1 do begin BeginUpdate(); Columns.Add('Default'); Background[EXG2ANTTLib_TLB.exSplitBar] := $bebebe; Background[EXG2ANTTLib_TLB.exHSplitBar] := $808080; Background[EXG2ANTTLib_TLB.exCSplitBar] := $10000; BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; PaneWidth[False] := 64; HistogramVisible := True; HistogramHeight := 64; OverviewHeight := 48; OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll; end; EndUpdate(); end |
1835 |
How do I highlight a bar with an icon, exclamation mark or some warning sign, without using exBarCaption, exBarExtraCaption which I've already use for something else ( sample 2 )
with G2antt1 do begin BeginUpdate(); with Chart do begin FirstVisibleDate := '12/26/2000'; PaneWidth[False] := 128; end; Columns.Add('Column'); with Items do begin AddItem(''); h := AddItem('Item'); AddItem(''); AddBar(h,'Task','1/1/2001','1/13/2001','A',Null); end; with Chart.Notes do begin with Add('Attention',OleVariant(G2antt1.Items.ItemByIndex[1]),'A',' <font ;11>! ') do begin RelativePosition := OleVariant(0.5); ShowLink := EXG2ANTTLib_TLB.exNoteLinkHidden; PartVOffset[EXG2ANTTLib_TLB.exNoteEnd] := 0; PartShadow[EXG2ANTTLib_TLB.exNoteEnd] := False; PartBackColor[EXG2ANTTLib_TLB.exNoteEnd] := $ffff; end; end; EndUpdate(); end |
1834 |
How do I highlight a bar with an icon, exclamation mark or some warning sign, without using exBarCaption, exBarExtraCaption which I've already use for something else ( sample 1 )
with G2antt1 do begin BeginUpdate(); with Chart do begin FirstVisibleDate := '12/26/2000'; PaneWidth[False] := 128; end; Columns.Add('Column'); with Items do begin AddItem(''); h := AddItem('Item'); AddItem(''); AddBar(h,'Task','1/1/2001','1/13/2001','A',Null); ItemBar[h,'A',EXG2ANTTLib_TLB.exBarBackgroundExt] := '[text=`<bgcolor=FFFF00><font ;11> ! `,align=0x11]'; ItemBar[h,'A',EXG2ANTTLib_TLB.exBarBackgroundExtInflate] := OleVariant(8); end; EndUpdate(); end |
1833 |
How do I get the "Summary" bar being shown in the control's histogram (sample 2)
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQGh' + '+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKfa' + 'ZACj4arKejrRDCMAggI='); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; HistogramVisible := True; HistogramHeight := 64; HistogramView := Integer(EXG2ANTTLib_TLB.exHistogramNoGrouping) Or Integer(EXG2ANTTLib_TLB.exHistogramAllItems); with Bars.Item['Task'] do begin HistogramPattern := Pattern; HistogramType := EXG2ANTTLib_TLB.exHistCumulative; HistogramCumulativeOriginalColorBars := EXG2ANTTLib_TLB.exKeepOriginalColor; end; end; with Items do begin hSummary := AddItem('Summary'); AddBar(hSummary,'Task','1/2/2001','1/2/2001','',Null); ItemBar[hSummary,'',EXG2ANTTLib_TLB.exBarColor] := OleVariant(16777216); hTask := InsertItem(hSummary,Null,'Task A'); AddBar(hTask,'Task','1/2/2001','1/5/2001','K1',Null); hTask := InsertItem(hSummary,Null,'Task B'); AddBar(hTask,'Task','1/4/2001','1/8/2001','K2',Null); hTask := InsertItem(hSummary,Null,'Task C'); AddBar(hTask,'Task','1/12/2001','1/17/2001','K3',Null); ExpandItem[hSummary] := True; DefineSummaryBars(hSummary,'',-1,'<*>'); end; EndUpdate(); end |
1832 |
How do I get the "Summary" bar being shown in the control's histogram (sample 1)
with G2antt1 do begin BeginUpdate(); VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQGh' + '+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKfa' + 'ZACj4arKejrRDCMAggI='); Columns.Add('Task'); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; HistogramVisible := True; HistogramHeight := 64; HistogramView := Integer(EXG2ANTTLib_TLB.exHistogramNoGrouping) Or Integer(EXG2ANTTLib_TLB.exHistogramAllItems); with Bars.Item['Task'] do begin HistogramPattern := Pattern; end; with Bars.Item['Summary'] do begin Color := $1000000; HistogramColor := $10000; HistogramPattern := EXG2ANTTLib_TLB.exPatternBDiagonal; end; end; with Items do begin hSummary := AddItem('Summary'); AddBar(hSummary,'Summary','1/2/2001','1/2/2001','',Null); hTask := InsertItem(hSummary,Null,'Task A'); AddBar(hTask,'Task','1/2/2001','1/5/2001','K1',Null); hTask := InsertItem(hSummary,Null,'Task B'); AddBar(hTask,'Task','1/4/2001','1/8/2001','K2',Null); hTask := InsertItem(hSummary,Null,'Task C'); AddBar(hTask,'Task','1/12/2001','1/17/2001','K3',Null); ExpandItem[hSummary] := True; DefineSummaryBars(hSummary,'',-1,'<*>'); end; EndUpdate(); end |
1831 |
How can I temporarily/programmatically hide the control's tooltip
// RClick event - Fired when right mouse button is clicked procedure TForm1.G2antt1RClick(ASender: TObject; ); begin with G2antt1 do begin nToolTipDelay := ToolTipDelay; ToolTipDelay := 0; ToolTipDelay := nToolTipDelay; end end; with G2antt1 do begin BeginUpdate(); (IUnknown(Columns.Add('Column w/h tooltip...')) as EXG2ANTTLib_TLB.Column).ToolTip := 'This is a bit of text that''s shown when the cursor hovers the column.<br><br><sha ;;0><c>Right-Click to hide it</sha>'; with Chart do begin FirstWeekDay := LocFirstWeekDay; MonthNames := LocMonthNames; WeekDays := LocWeekDays; AMPM := LocAMPM; LevelCount := 2; PaneWidth[False] := 128; UnitScale := EXG2ANTTLib_TLB.exDay; end; HeaderAppearance := EXG2ANTTLib_TLB.Flat; BackColorLevelHeader := BackColor; EndUpdate(); end |
1830 |
Is it possible to find out the handle of the item, giving the key of the bar only
with G2antt1 do begin BeginUpdate(); Debug := True; DefaultItemHeight := 32; Columns.Add('Task'); with Chart do begin PaneWidth[False] := 64; Bars.Item['Task'].Height := 16; FirstVisibleDate := '1/1/2001'; ShowLinks := EXG2ANTTLib_TLB.exShowExtendedLinks; end; with Items do begin AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1',Null); AddBar(AddItem('Task 2'),'Task','1/5/2001','1/7/2001','K2',Null); ItemBold[ItemBar[0,'K2',EXG2ANTTLib_TLB.exBarParent]] := True; end; EndUpdate(); end |
1829 |
How can I programmatically add a link between two bars, knowing the keys of these bars only
with G2antt1 do begin BeginUpdate(); Debug := True; DefaultItemHeight := 32; Columns.Add('Task'); with Chart do begin PaneWidth[False] := 64; Bars.Item['Task'].Height := 16; FirstVisibleDate := '1/1/2001'; ShowLinks := EXG2ANTTLib_TLB.exShowExtendedLinks; end; with Items do begin h1 := AddItem('Task 1'); AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null); h2 := AddItem('Task 2'); AddBar(h2,'Task','1/5/2001','1/7/2001','AK2',Null); h3 := AddItem('Task 3'); AddBar(h3,'Task','1/5/2001','1/7/2001','AK3',Null); AddLink('Link1',0,'K1',0,'AK2'); AddLink('Link2',0,'K1',0,'<A?3>'); AddLink('Link3',0,'<*2>',0,'AK3'); end; EndUpdate(); end |
1828 |
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 3)
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; AutoDrag := EXG2ANTTLib_TLB.exAutoDragPositionAny; HasLines := EXG2ANTTLib_TLB.exSolidLine; Indent := 16; MarkSearchColumn := False; with Columns do begin with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); FormatColumn := '((1:=(0 :=(1 rpos ''.|A-Z||a-z|'')) rfind `.`) < 0 ? `<b>` + =:0 + `` : (=:0 mid (1 + 1 + =:1) ) + `)` ) + ` ` + value'; end; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child'); hChild := InsertItem(h,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(h,Null,'Child'); ExpandItem[0] := True; h := AddItem('Root'); InsertItem(h,Null,'Child'); hChild := InsertItem(h,Null,'Child'); CellState[OleVariant(hChild),OleVariant(0)] := 1; InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(h,Null,'Child'); end; EndUpdate(); end |
1827 |
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 2)
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; GridLineColor := RGB(190,190,190); DrawGridLines := EXG2ANTTLib_TLB.exRowLines; AutoDrag := EXG2ANTTLib_TLB.exAutoDragPositionAny; HasLines := EXG2ANTTLib_TLB.exSolidLine; Indent := 16; with Columns do begin Add('Default'); with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); Def[EXG2ANTTLib_TLB.exCellPaddingRight] := OleVariant(4); AllowSizing := False; Width := 36; Position := 0; FormatColumn := '(1:=(0 :=(1 rpos ''.|A-Z||a-z|'')) rfind `.`) < 0 ? `<b>` + =:0 : (`............` left 2 * (=:0 count `.`)) + (=:0 mid (1 + 1 + =:' + '1) ) '; end; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child'); hChild := InsertItem(h,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(h,Null,'Child'); ExpandItem[0] := True; h := AddItem('Root'); InsertItem(h,Null,'Child'); hChild := InsertItem(h,Null,'Child'); CellState[OleVariant(hChild),OleVariant(0)] := 1; InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(h,Null,'Child'); end; EndUpdate(); end |
1826 |
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 1)
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; AutoDrag := EXG2ANTTLib_TLB.exAutoDragPositionAny; HasLines := EXG2ANTTLib_TLB.exSolidLine; Indent := 16; with Columns do begin Add('Default'); with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); Def[EXG2ANTTLib_TLB.exCellPaddingRight] := OleVariant(4); Alignment := EXG2ANTTLib_TLB.RightAlignment; AllowSizing := False; Width := 24; Position := 0; FormatColumn := '(1:=(0 :=(1 rpos ''.|A-Z||a-z|'')) rfind `.`) < 0 ? `<b>` + =:0 : `<i>` + (=:0 mid (1 + 1 + =:1) ) '; end; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child'); hChild := InsertItem(h,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(h,Null,'Child'); ExpandItem[0] := True; h := AddItem('Root'); InsertItem(h,Null,'Child'); hChild := InsertItem(h,Null,'Child'); CellState[OleVariant(hChild),OleVariant(0)] := 1; InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(hChild,Null,'Child'); InsertItem(h,Null,'Child'); end; EndUpdate(); end |
1825 |
How can I programmatically group by columns, without having the control's sort bar visible
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; ColumnAutoResize := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null); end; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); SortBarHeight := 0; SortBarVisible := True; SortBarCaption := 'Drag a <b>column</b> header here to group by that column.'; AllowGroupBy := True; Layout := 'multiplesort="C1:2"'; EndUpdate(); end |
1824 |
How do I perform my own sort
// Sort event - Fired when the control sorts a column. procedure TForm1.G2antt1Sort(ASender: TObject; ); begin with G2antt1 do begin OutputDebugString( 'Sort' ); with Items do begin ItemPosition[ItemByIndex[1]] := 0; ItemPosition[ItemByIndex[0]] := 1; end; end end; with G2antt1 do begin BeginUpdate(); SingleSort := False; SortOnClick := EXG2ANTTLib_TLB.exUserSort; with Columns do begin (IUnknown(Add('Index')) as EXG2ANTTLib_TLB.Column).FormatColumn := '0 index ``'; Add('Data 1'); Add('Data 2'); end; with Items do begin h := AddItem(OleVariant(0)); CellValue[OleVariant(h),OleVariant(1)] := OleVariant(2); CellValue[OleVariant(h),OleVariant(2)] := OleVariant(3); h := AddItem(OleVariant(4)); CellValue[OleVariant(h),OleVariant(1)] := OleVariant(5); CellValue[OleVariant(h),OleVariant(2)] := OleVariant(6); h := AddItem(OleVariant(7)); CellValue[OleVariant(h),OleVariant(1)] := OleVariant(8); CellValue[OleVariant(h),OleVariant(2)] := OleVariant(9); end; Layout := 'multiplesort="C1:1 C2:2"'; EndUpdate(); end |
1823 |
Is it possible to have a different alignment for parts of the cell's caption
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := True; TreeColumnIndex := -1; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; with (IUnknown(Columns.Add('Default')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); end; with Items do begin CellHAlignment[OleVariant(AddItem('all-left')),OleVariant(0)] := EXG2ANTTLib_TLB.LeftAlignment; CellHAlignment[OleVariant(AddItem('all-center')),OleVariant(0)] := EXG2ANTTLib_TLB.CenterAlignment; CellHAlignment[OleVariant(AddItem('all-right')),OleVariant(0)] := EXG2ANTTLib_TLB.RightAlignment; h := AddItem('left<c>center<r>right'); CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML; end; EndUpdate(); end |
1822 |
I have a column with Def(exCellSingleLine) property on False, word-wrapping, and I am wondering if possible to update the column's content while user is resizing it
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; with Columns do begin with (IUnknown(Add('MultipleLine')) as EXG2ANTTLib_TLB.Column) do begin Width := 32; Def[EXG2ANTTLib_TLB.exCellSingleLine] := OleVariant(False); Def[EXG2ANTTLib_TLB.exColumnResizeContiguously] := OleVariant(True); end; with (IUnknown(Add('SingleLine')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellSingleLine] := OleVariant(False); end; end; with Items do begin CellValue[OleVariant(AddItem('This is a bit of long text that should break the line')),OleVariant(1)] := 'This is a bit of long text that should break the line'; end; EndUpdate(); end |
1821 |
Is there an other way to detect if a bar is overlapping any other bar
// BarResizing event - Occurs when a bar is moving or resizing. procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant); begin with G2antt1 do begin Refresh(); end end; with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exVLines; HeaderAppearance := EXG2ANTTLib_TLB.Etched; BackColorLevelHeader := BackColor; DefaultItemHeight := 22; Columns.Add('Task'); with (IUnknown(Columns.Add('Intersect / Count')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarKey] := 'A'; Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(521); LevelKey := OleVariant(1); end; with (IUnknown(Columns.Add(' / With')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarKey] := 'A'; Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(520); LevelKey := OleVariant(1); end; Items.AllowCellValueToItemBar := True; with Chart do begin LevelCount := 2; PaneWidth[False] := 148; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsOffset; OverlaidGroup := 'TaskB'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(16); end; with Bars.Add('TaskB') do begin Pattern := EXG2ANTTLib_TLB.exPatternBDiagonal; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; end; with Items do begin h := AddItem('A'); AddBar(h,'Task','1/2/2001','1/4/2001','A','A'); AddBar(h,'TaskB','1/3/2001','1/5/2001','B','B'); h := AddItem('A'); AddBar(h,'Task','1/6/2001','1/9/2001','A','A'); AddBar(h,'TaskB','1/10/2001','1/13/2001','B','B'); h := AddItem('A'); AddBar(h,'TaskB','1/6/2001','1/9/2001','B1','B1'); AddBar(h,'Task','1/10/2001','1/13/2001','A','A'); AddBar(h,'TaskB','1/10/2001','1/13/2001','B2','B2'); h := AddItem('A'); AddBar(h,'Task','1/8/2001','1/11/2001','B1','B1'); AddBar(h,'Task','1/10/2001','1/13/2001','A','A'); AddBar(h,'Task','1/12/2001','1/15/2001','B2','B2'); end; EndUpdate(); end |
1820 |
How can I get the absolute position of an item
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Task','1/2/2017','1/5/2017',Null,Null); end; end end; // MouseMove event - Occurs when the user moves the mouse. procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin with Items do begin OutputDebugString( CellCaption[OleVariant(G2antt1.ItemFromPoint[-1,-1,c,hit]),'Position'] ); end; end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2017'; end; BackColorLevelHeader := BackColor; BackColorAlternate := RGB(240,240,240); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; (IUnknown(Columns.Add('Def')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with Items do begin h := AddItem('Root'); InsertItem(InsertItem(h,Null,'Child 1'),Null,'Sub-Child 1'); InsertItem(InsertItem(h,Null,'Child 2'),Null,'Sub-Child 2'); end; PutItems(GetItems(OleVariant(-1)),Null); PutItems(GetItems(OleVariant(-1)),Null); PutItems(GetItems(OleVariant(-1)),Null); with (IUnknown(Columns.Add('Position')) as EXG2ANTTLib_TLB.Column) do begin FormatColumn := '1 apos ``'; Visible := False; end; EndUpdate(); end |
1819 |
How do I sort the index column as numeric (Method 2)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin CellData[OleVariant(Item),OleVariant(1)] := OleVariant(CellCaption[OleVariant(Item),OleVariant(1)]); end; end end; with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exAllLines; ColumnAutoResize := True; ShowFocusRect := False; with (IUnknown(Columns.Add('Next')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(4); Def[EXG2ANTTLib_TLB.exHeaderPaddingLeft] := OleVariant(4); end; with (IUnknown(Columns.Add('Index')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 48; FormatColumn := '(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)'; Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); SortType := EXG2ANTTLib_TLB.SortUserData; Position := 0; end; with Items do begin AddItem('Item 1'); AddItem('Item 2'); AddItem('Item 3'); AddItem('Item 4'); AddItem('Item 5'); AddItem('Item 6'); AddItem('Item 7'); AddItem('Item 8'); AddItem('Item 9'); AddItem('Item 10'); end; EndUpdate(); end |
1818 |
How do I sort the index column as numeric (Method 1)
with G2antt1 do begin BeginUpdate(); with (IUnknown(Columns.Add('Sort Index As String (Default)')) as EXG2ANTTLib_TLB.Column) do begin FormatColumn := '1 index ``'; end; with (IUnknown(Columns.Add('Sort Index As Numeric')) as EXG2ANTTLib_TLB.Column) do begin ComputedField := '%C0'; SortType := EXG2ANTTLib_TLB.SortNumeric; end; with Items do begin AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); end; EndUpdate(); end |
1817 |
How can I put icons/images into buttons
with G2antt1 do begin BeginUpdate(); ColumnAutoResize := True; Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA='); with (IUnknown(Columns.Add('C+B')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 48; FormatColumn := '` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `'; Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellHasButton] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellButtonAutoWidth] := OleVariant(True); end; Columns.Add(''); DrawGridLines := EXG2ANTTLib_TLB.exVLines; DefaultItemHeight := 20; with Items do begin AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); end; EndUpdate(); end |
1816 |
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column
// ButtonClick event - Occurs when user clicks on the cell's button. procedure TForm1.G2antt1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant); begin with G2antt1 do begin OutputDebugString( 'ButtonClick' ); OutputDebugString( Item ); OutputDebugString( Key ); end end; // CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin OutputDebugString( 'CellStateChanged' ); OutputDebugString( Item ); end end; with G2antt1 do begin BeginUpdate(); ColumnAutoResize := True; with (IUnknown(Columns.Add('')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 32; FormatColumn := '1 index ``'; end; with (IUnknown(Columns.Add('Def')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 48; FormatColumn := '` `'; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellHasButton] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellButtonAutoWidth] := OleVariant(True); end; Columns.Add(''); with Items do begin AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); AddItem(''); end; EndUpdate(); end |
1815 |
Does filtering work with umlauts / accents characters
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; with (IUnknown(Columns.Add('Names')) as EXG2ANTTLib_TLB.Column) do begin DisplayFilterButton := True; FilterType := EXG2ANTTLib_TLB.exPattern; end; with Items do begin AddItem('Mantel'); AddItem('Mechanik'); AddItem('Motor'); AddItem('Murks'); AddItem('Märchen'); AddItem('Möhren'); AddItem('Mühle'); AddItem('Sérigraphie'); end; Columns.Item[OleVariant(0)].Filter := '*ä*'; ApplyFilter(); EndUpdate(); end |
1814 |
How can I temporarily disable resizing the overview part of the control
with G2antt1 do begin BeginUpdate(); BackColorLevelHeader := BackColor; OnResizeControl := EXG2ANTTLib_TLB.exDisableOverview; with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; OverviewVisible := Integer(EXG2ANTTLib_TLB.exOverviewSplitter) Or Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScale) Or Integer(EXG2ANTTLib_TLB.exOverviewAllowVerticalScroll) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible); OverviewHeight := 32; end; Columns.Add('Column'); with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null); AddBar(AddItem('Item 2'),'Task','2/2/2001','2/11/2001',Null,Null); AddBar(AddItem('Item 3'),'Task','3/2/2001','3/11/2001',Null,Null); end; EndUpdate(); end |
1813 |
Is it possible to resize the overview part of the control at runtime
with G2antt1 do begin BeginUpdate(); VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABVADg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSBcEgTDaMYzgMBYJhEMQyDSAUIjPEyMg0DjIIwgJIUaw0GSXIRkGQZCh' + 'GJooTJQMrTZIEbQxHSkIyRVTmZACS5NRZPYy0FAkQhlFSbJBCOKwVomR5KUxTVg1DJwahLCKULLhGI7KgObIRSJOcZ1XAdCQ0cB0XpAC6LaqSA4nSjKcqwJKEZRJIyjJ' + 'wgSrrWhePoJYBVAAQPQdDYaCivK5uWK6PqKUIlZBQGQVNS1MRrLSEcwgPKgAyzDadZzfQAWTZFTQjN61RgtXR6eyoAJ0aziFDVFo0WRlEwacorGhcbgPPrCRrxGBVNwg' + 'GOJo4kIeASB0Zw/iGDoym6dobh2XpiDWJo5HMd56h6dxjlICIEhQDQmDOIZUmQZZlAADpYHIEQ3nUGgNhCEIhAkawamAAAYEWRAGB2bA2EqYg2AyA4glgPgSgQYRIEIF' + 'oEmEeBWBiBphFAAgPDwDgDEycQ4A0Q5IwkDwjgyWA8k4SIsmUNoPEOFJbD0DhjHINA3E8Q4eDiDojhiYJmg+Ixokic4LmKQxiCkNk2CCX4DmGaA0nAN4NBiDJSDwTgTE' + 'ycg4E0WIYlcPJiiiMJZhCTYpgCcw5g2OYOGWGQmCkEJkheYopGoVw1GSGQuA2ExIlOQJcDOZJzEDSJNBiAgiU4Q5GCeChNHkHJygsaBzGaCYimiCY0mMNZoCMWhUDUJ5' + 'pkYTIDk6YxwkwO5NlMOoch6JQJm4U4JCIMxWFSKbCBoKIgmJDAuDgKhohKIoTk0GhaHOJgNiMKJuDaaYzHCTYnAyaZmjSKIiDiCghjEYg6AaR4yk0OpOiFSQLAKNgjGc' + 'Q40lkMhOmqZo7DKTpzG6Pw3CmYx2HiNAsCqBh8h6Z5bh6T4oC0G4Im+OAtlMNpTjUTYDCKVo2C3QBLi6a5bH6YY4EyehzAGO4wEwDoejwK5rnK95vDgPJsDWTBjjSWAx' + 'nEK5aleNhriuawKi8Lp7H8HpHHGXBskyQpxguXwNgMTpDFiRZDnEExfBSPRvHuXwYkycYslae5NjMQwrDGNZxFyHINDsDRTBMKZKnKLIwm2S4xF0Jw8lKTIcm9eA0hyQ' + 'wuksM5jiyVQwnQDQIlaVo0EyLwQlGcRNCME5EjKfYXGSWEhDMQ5QnOahHG6KwoFOCoFiOaBNlcdIjiQag7HOL0dwuxKC1aeNQI4BQihNDoEwXowxmh8CIL8Yg8ROBfAS' + 'McaIOR6CHBkMgLgrwUjLHkHMG4NQaBzE4MQaIyw5gxEsH0Dw9FBBNA6PUDoLwpjTHqF0N4WQShSHgGwcY2RkhdFCL8bYdwOivDqNse4fRnh5G+PYEgaR1B0E4B4D4ixx' + 'B4G8E8SI5R8D+DeJUc4eRPB/EaJ8DwpwojDHUPofwtxYjtH2F4d4sx3j7E+AcXo8B9geFCNYOIHhfg/GmPQPoXw3jZHuPoX4hxuj1H8J8T43RPhDEgM8eo/B/iQGuPwf' + 'xEh1guAIAwQAgCAg'); BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; OverviewVisible := Integer(EXG2ANTTLib_TLB.exOverviewSplitter) Or Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScale) Or Integer(EXG2ANTTLib_TLB.exOverviewAllowVerticalScroll) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible); OverviewHeight := 32; OverviewSelBackColor := $1000000; OverviewBackColor := $fafafa; end; Columns.Add('Column'); with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null); AddBar(AddItem('Item 2'),'Task','2/2/2001','2/11/2001',Null,Null); AddBar(AddItem('Item 3'),'Task','3/2/2001','3/11/2001',Null,Null); end; EndUpdate(); end |
1812 |
You've provided examples of how to create bars for each record of a MS Access table, however I would like to create a database connected Gantt that has multiple bars per item/resource. Could you please advise
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. procedure TForm1.G2antt1AddGroupItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Summary',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],'0',Null); DefineSummaryBars(Item,'0',-3,'0'); AddBar(Item,'SummaryB',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],'1',Null); DefineSummaryBars(Item,'1',-3,'1'); ItemBackColor[Item] := $f0f0f0; end; Chart.ItemBackColor[Item] := $f0f0f0; end end; // AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],ItemBar[Item,'',EXG2ANTTLib_TLB.exBarsCount],Null); AddBar(Item,'TaskB',CellValue[OleVariant(Item),OleVariant(3)],CellValue[OleVariant(Item),OleVariant(4)],ItemBar[Item,'',EXG2ANTTLib_TLB.exBarsCount],Null); end; end end; // MouseDown event - Occurs when the user presses a mouse button. procedure TForm1.G2antt1MouseDown(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin i := ItemFromPoint[-1,-1,c,hit]; FullRowSelect := Columns.Item[OleVariant(c)].Data; end end; with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := True; HeaderHeight := 22; HeaderAppearance := EXG2ANTTLib_TLB.Flat; BackColorLock := RGB(240,240,240); BackColorHeader := BackColorLock; HasLines := EXG2ANTTLib_TLB.exNoLine; ColumnAutoResize := False; SortBarVisible := False; AllowGroupBy := True; ReadOnly := EXG2ANTTLib_TLB.exReadOnly; ShowFocusRect := False; CountLockedColumns := 1; AutoDrag := EXG2ANTTLib_TLB.exAutoDragScroll; SingleSort := False; ColumnsAllowSizing := True; DrawGridLines := EXG2ANTTLib_TLB.exAllLines; GridLineStyle := EXG2ANTTLib_TLB.exGridLinesSolid; GridLineColor := RGB(220,220,220); with Chart do begin FirstVisibleDate := '9/1/1994'; LevelCount := 2; PaneWidth[False] := 256; with Bars.Item['Task'] do begin Height := 15; Color := $808080; StartColor := $cccc; EndColor := StartColor; OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack; OverlaidGroup := 'Task,TaskB'; Pattern := Integer(EXG2ANTTLib_TLB.exPatternGradientVBox) Or Integer(EXG2ANTTLib_TLB.exPatternBox); end; with Bars.Copy('Task','TaskB') do begin Color := $808080; StartColor := $9999; EndColor := StartColor; end; with Bars.Item['Summary'] do begin OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack; OverlaidGroup := 'Summary,SummaryB'; Color := $cccc; StartColor := Color; EndColor := Color; end; with Bars.Copy('Summary','SummaryB') do begin Color := $9999; StartColor := Color; EndColor := Color; end; end; BackColorSortBar := BackColor; ColumnAutoResize := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null); end; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); Debug := True; Columns.Item[OleVariant(0)].Data := OleVariant(-1); Layout := 'singlesort="C5:1";multiplesort=" C1:2"'; EndUpdate(); end |
1811 |
How can I filter for multiple captions on a single column, using OR clause
with G2antt1 do begin BeginUpdate(); ColumnAutoResize := True; ContinueColumnScroll := False; MarkSearchColumn := True; SearchColumnIndex := 1; FilterBarPromptVisible := True; with Columns do begin (IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96; with (IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column) do begin Width := 96; end; Add('City'); end; with Items do begin h0 := AddItem('Nancy Davolio'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle'; h0 := AddItem('Andrew Fuller'); CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales'; CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma'; SelectItem[h0] := True; h0 := AddItem('Janet Leverling'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland'; h0 := AddItem('Margaret Peacock'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond'; h0 := AddItem('Steven Buchanan'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Michael Suyama'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Robert King'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Laura Callahan'); CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator'; CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle'; h0 := AddItem('Anne Dodsworth'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; end; FilterBarPromptColumns := '1'; FilterBarPromptPattern := 'Vice Inside'; FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptContainsAny; EndUpdate(); end |
1810 |
How can I filter for multiple captions on a single column, using AND clause
with G2antt1 do begin BeginUpdate(); ColumnAutoResize := True; ContinueColumnScroll := False; MarkSearchColumn := True; SearchColumnIndex := 1; FilterBarPromptVisible := True; with Columns do begin (IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96; with (IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column) do begin Width := 96; end; Add('City'); end; with Items do begin h0 := AddItem('Nancy Davolio'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle'; h0 := AddItem('Andrew Fuller'); CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales'; CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma'; SelectItem[h0] := True; h0 := AddItem('Janet Leverling'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland'; h0 := AddItem('Margaret Peacock'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond'; h0 := AddItem('Steven Buchanan'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Michael Suyama'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Robert King'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Laura Callahan'); CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator'; CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle'; h0 := AddItem('Anne Dodsworth'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; end; FilterBarPromptColumns := '1'; FilterBarPromptPattern := 'Vice Sales'; FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptContainsAll; EndUpdate(); end |
1809 |
How can I display the limits/margins of the project, in the overview part of the control
with G2antt1 do begin BeginUpdate(); VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABVADg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSBcEgTDaMYzgMBYJhEMQyDSAUIjPEyMg0DjIIwgJIUaw0GSXIRkGQZCh' + 'GJooTJQMrTZIEbQxHSkIyRVTmZACS5NRZPYy0FAkQhlFSbJBCOKwVomR5KUxTVg1DJwahLCKULLhGI7KgObIRSJOcZ1XAdCQ0cB0XpAC6LaqSA4nSjKcqwJKEZRJIyjJ' + 'wgSrrWhePoJYBVAAQPQdDYaCivK5uWK6PqKUIlZBQGQVNS1MRrLSEcwgPKgAyzDadZzfQAWTZFTQjN61RgtXR6eyoAJ0aziFDVFo0WRlEwacorGhcbgPPrCRrxGBVNwg' + 'GOJo4kIeASB0Zw/iGDoym6dobh2XpiDWJo5HMd56h6dxjlICIEhQDQmDOIZUmQZZlAADpYHIEQ3nUGgNhCEIhAkawamAAAYEWRAGB2bA2EqYg2AyA4glgPgSgQYRIEIF' + 'oEmEeBWBiBphFAAgPDwDgDEycQ4A0Q5IwkDwjgyWA8k4SIsmUNoPEOFJbD0DhjHINA3E8Q4eDiDojhiYJmg+Ixokic4LmKQxiCkNk2CCX4DmGaA0nAN4NBiDJSDwTgTE' + 'ycg4E0WIYlcPJiiiMJZhCTYpgCcw5g2OYOGWGQmCkEJkheYopGoVw1GSGQuA2ExIlOQJcDOZJzEDSJNBiAgiU4Q5GCeChNHkHJygsaBzGaCYimiCY0mMNZoCMWhUDUJ5' + 'pkYTIDk6YxwkwO5NlMOoch6JQJm4U4JCIMxWFSKbCBoKIgmJDAuDgKhohKIoTk0GhaHOJgNiMKJuDaaYzHCTYnAyaZmjSKIiDiCghjEYg6AaR4yk0OpOiFSQLAKNgjGc' + 'Q40lkMhOmqZo7DKTpzG6Pw3CmYx2HiNAsCqBh8h6Z5bh6T4oC0G4Im+OAtlMNpTjUTYDCKVo2C3QBLi6a5bH6YY4EyehzAGO4wEwDoejwK5rnK95vDgPJsDWTBjjSWAx' + 'nEK5aleNhriuawKi8Lp7H8HpHHGXBskyQpxguXwNgMTpDFiRZDnEExfBSPRvHuXwYkycYslae5NjMQwrDGNZxFyHINDsDRTBMKZKnKLIwm2S4xF0Jw8lKTIcm9eA0hyQ' + 'wuksM5jiyVQwnQDQIlaVo0EyLwQlGcRNCME5EjKfYXGSWEhDMQ5QnOahHG6KwoFOCoFiOaBNlcdIjiQag7HOL0dwuxKC1aeNQI4BQihNDoEwXowxmh8CIL8Yg8ROBfAS' + 'McaIOR6CHBkMgLgrwUjLHkHMG4NQaBzE4MQaIyw5gxEsH0Dw9FBBNA6PUDoLwpjTHqF0N4WQShSHgGwcY2RkhdFCL8bYdwOivDqNse4fRnh5G+PYEgaR1B0E4B4D4ixx' + 'B4G8E8SI5R8D+DeJUc4eRPB/EaJ8DwpwojDHUPofwtxYjtH2F4d4sx3j7E+AcXo8B9geFCNYOIHhfg/GmPQPoXw3jZHuPoX4hxuj1H8J8T43RPhDEgM8eo/B/iQGuPwf' + 'xEh1guAIAwQAgCAg'); BackColorLevelHeader := BackColor; with Chart do begin LevelCount := 2; FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; OverviewVisible := EXG2ANTTLib_TLB.OverviewVisibleEnum($400 Or Integer(EXG2ANTTLib_TLB.exOverviewShowSelMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScaleBottom) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible)); OverviewHeight := 64; OverviewSelBackColor := $1000000; OverviewBackColor := $fafafa; end; Columns.Add('Column'); with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null); AddBar(AddItem('Item 2'),'Task','2/2/2001','2/11/2001',Null,Null); AddBar(AddItem('Item 3'),'Task','3/2/2001','3/11/2001',Null,Null); end; EndUpdate(); end |
1808 |
Is it possible to display a time-scale for the overview part of the control (separated)
with G2antt1 do begin BeginUpdate(); BackColorLevelHeader := BackColor; with Chart do begin FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; OverviewVisible := Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScaleSplit) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible); OverviewHeight := 48; LevelCount := 2; end; Columns.Add('Column'); with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null); AddBar(AddItem('Item 2'),'Task','2/2/2001','2/11/2001',Null,Null); AddBar(AddItem('Item 3'),'Task','3/2/2001','3/11/2001',Null,Null); end; EndUpdate(); end |
1807 |
Is it possible to display a time-scale for the overview part of the control
with G2antt1 do begin BeginUpdate(); BackColorLevelHeader := BackColor; with Chart do begin FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; OverviewVisible := Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScale) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible); LevelCount := 2; end; Columns.Add('Column'); with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null); AddBar(AddItem('Item 2'),'Task','2/2/2001','2/11/2001',Null,Null); AddBar(AddItem('Item 3'),'Task','3/2/2001','3/11/2001',Null,Null); end; EndUpdate(); end |
1806 |
How can I display the time-scale only, in the overview part of the control
with G2antt1 do begin BeginUpdate(); BackColorLevelHeader := BackColor; with Chart do begin FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 48; OverviewVisible := Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScale) Or Integer(EXG2ANTTLib_TLB.exOverviewHideBars) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible); LevelCount := 2; end; Columns.Add('Column'); with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null); AddBar(AddItem('Item 2'),'Task','2/2/2001','2/11/2001',Null,Null); AddBar(AddItem('Item 3'),'Task','3/2/2001','3/11/2001',Null,Null); end; EndUpdate(); end |
1805 |
How can I detect that the mouse pointer is within an InsideZoom object
// MouseMove event - Occurs when the user moves the mouse. procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin with Chart do begin d := DateFromPoint[-1,-1]; iz := (IUnknown(InsideZooms.Contains[OleVariant(d)]) as _TLB.Object); OutputDebugString( d ); OutputDebugString( 'If the iz object is nothing, the date is not zoomed, else it is.' ); OutputDebugString( iz ); end; end end; with G2antt1 do begin BeginUpdate(); with Chart do begin FirstVisibleDate := '1/1/2001'; PaneWidth[False] := 0; LevelCount := 2; FirstWeekDay := EXG2ANTTLib_TLB.exMonday; AllowInsideZoom := True; InsideZooms.Add('1/10/2001'); end; EndUpdate(); end |
1804 |
Is it possible to word-wrap text/caption on the bar, so it gets displayed on multiple lines
with G2antt1 do begin BeginUpdate(); ScrollBySingleLine := True; ItemsAllowSizing := EXG2ANTTLib_TLB.exResizeItem; DrawGridLines := EXG2ANTTLib_TLB.exHLines; HeaderHeight := 28; DefaultItemHeight := 24; BackColorLevelHeader := BackColor; HeaderAppearance := EXG2ANTTLib_TLB.Bump; Columns.Add('Tasks'); with Chart do begin LevelCount := 2; PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; DrawGridLines := EXG2ANTTLib_TLB.exHLines; with Bars.Copy('Task','TaskB') do begin Height := 15; Pattern := EXG2ANTTLib_TLB.exPatternBox; StartColor := $ffe8cc; EndColor := StartColor; Color := $ff0000; end; with Bars.Item['Task'] do begin Height := -1; Pattern := EXG2ANTTLib_TLB.exPatternBox; StartColor := $ffe8cc; EndColor := StartColor; Color := $ff0000; end; end; with Items do begin h := AddItem('Word-Wrap Inside'); AddBar(h,'Task','1/9/2001','1/13/2001','A1',Null); ItemBar[h,'A1',EXG2ANTTLib_TLB.exBarBackgroundExt] := 'none[(2,2,100%-4,100%-4),text=`This is a bit of text that should break the line`,wordwrap]'; h := AddItem('Word-Wrap Inside'); AddBar(h,'Task','1/5/2001','1/19/2001','A2',Null); ItemBar[h,'A2',EXG2ANTTLib_TLB.exBarBackgroundExt] := 'none[(2,2,100%-4,100%-4),align=0x11,text=`This is a bit of text that should break the line`,wordwrap]'; h := AddItem('Word-Wrap Back'); AddBar(h,'TaskB','1/9/2001','1/13/2001','A3',Null); ItemBar[h,'A3',EXG2ANTTLib_TLB.exBarBackgroundExt] := 'client[align=0x11,text=`This is a bit of text that should break the line`,wordwrap]'; ItemBar[h,'A3',EXG2ANTTLib_TLB.exBarBackgroundExtFlags] := OleVariant(2); end; EndUpdate(); end |
1803 |
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
with G2antt1 do begin BeginUpdate(); ColumnAutoResize := True; ContinueColumnScroll := False; MarkSearchColumn := False; SearchColumnIndex := 1; FilterBarHeight := 0; FilterBarPromptVisible := True; Chart.PaneWidth[True] := 0; with Columns do begin (IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96; (IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96; Add('City'); end; with Items do begin h0 := AddItem('Nancy Davolio'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle'; h0 := AddItem('Andrew Fuller'); CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales'; CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma'; SelectItem[h0] := True; h0 := AddItem('Janet Leverling'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland'; h0 := AddItem('Margaret Peacock'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond'; h0 := AddItem('Steven Buchanan'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Michael Suyama'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Robert King'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; h0 := AddItem('Laura Callahan'); CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator'; CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle'; h0 := AddItem('Anne Dodsworth'); CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative'; CellValue[OleVariant(h0),OleVariant(2)] := 'London'; end; FilterBarPromptPattern := 'London'; EndUpdate(); end |
1802 |
How to load a hierarchy using the control's DataSource property (Parent-ID-Relation)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin SetParent(Item,FindItem[CellValue[OleVariant(Item),'ReportsTo'],'EmployeeID',Null]); end; end end; with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; ColumnAutoResize := False; ContinueColumnScroll := False; rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset); with rs do begin Open('SELECT * FROM Employees ORDER BY ReportsTo','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null); end; DataSource := (IUnknown(rs) as ADODB_TLB.Recordset); Items.ExpandItem[0] := True; EndUpdate(); end |
1801 |
How can I highlight the limits/margins of a summary bar, according with the child bars
with G2antt1 do begin BeginUpdate(); with VisualAppearance do begin Add(1,'gBFLBCJwBAEHhEJAAEhABRkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjhwkAIIQK/cZRPC0Ow8GSEZAgOKIch6FgCQjEIxDKIsVRZEiDYRmGLpIiOJoWSQBUIyJKoAQ' + '0f6fIziaTpNiGL4yTBPMzyJRcEx1GyBZ5negaAo2AwIQiUBomGahajkMqZQAJaCSCI2Y4eDZCIoTXR1WAxDq3ZruKpLUpOc4DOrEMIwCEBA='); Add(2,'CP:1 -4 0 5 0'); Add(3,'gBFLBCJwBAEHhEJAAEhABOMGACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQRHc5TNC' + 'MTRRECDY4kAYpAiKRYbSpAcyQHQ8bQtHwYKAoOg6JjWIAHRqCMI0XINHQ3FwaRJsCwoJhOZIDWZENDQTSsLSxJSkIRfe4wArNf4XVBVMqSdKEZRJLybJwADApAo2eIlQ' + 'jJdQ4TSdBSdQwDLYhECpbwCT6JT7jGLQJZsNyvBLIYDrKA8UozFqHQRYNhxDZNShhM6rMigPQQAq8AKlRbVNzXLamLwHRS9BpoORhUjHD4bVxVOyaPpAAaBFbhI44QZO' + 'HYNYfjgaI0BySp8HMVZdlgaxtBqexWkqOw1lGbZzlwfQ0AwYR/gka5FiMGpgkQYYviGV4kBUWpmlsaYGHMEgACECQUAaEYMHQHRHCGFRBECRJkGQQgTGCVBoDYQhCgQJ' + 'ZoG4EIAGEFwGB+dwxHaB5iAabReggYhGnUToJGIRgCCiCBdjiNguGmYo4gIKoMGIKIeDSCYTGiXg4EITo3hAiJAICA=='); end; Columns.Add('Task'); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; Bars.Item['Summary'].Color := $3000000; end; with Items do begin hSummary := AddItem('Summary'); AddBar(hSummary,'Summary','1/2/2001','1/2/2001','',Null); hTask := InsertItem(hSummary,Null,'Task A'); AddBar(hTask,'Task','1/2/2001','1/5/2001','K1',Null); hTask := InsertItem(hSummary,Null,'Task B'); AddBar(hTask,'Task','1/4/2001','1/8/2001','K2',Null); hTask := InsertItem(hSummary,Null,'Task C'); AddBar(hTask,'Task','1/6/2001','1/10/2001','K3',Null); ExpandItem[hSummary] := True; DefineSummaryBars(hSummary,'',-1,'<*>'); ItemBar[hSummary,'',EXG2ANTTLib_TLB.exSummaryBarBackColor] := OleVariant(33554432); end; EndUpdate(); end |